You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JS获取可搜索下拉框选中文本 解决取值undefined与点击不展开问题

问题修复方案

取值返回undefined问题修复

取值对象错误:<datalist>元素本身没有value属性,选中值实际存储在和datalist绑定的<input>节点上,你之前选取#suggestions(datalist节点)取值自然会返回undefined。
修正方案为从id为agentName的input元素取值即可。

单击无法唤起下拉选项问题修复

原生datalist默认交互规则为:输入框为空时单击不会弹出选项列表,需要双击或输入内容才会触发展示。
修正方案为给input绑定单击事件,调用showPicker()方法主动唤起选项列表。

完整修正后代码

JS代码

// 获取选中值逻辑
document.querySelector('#get-value').addEventListener('click', ()=> {
  const elmValue = document.querySelector('#agentName').value;
  document.querySelector('#result').textContent = elmValue;
})

// 单击唤起下拉列表逻辑
document.querySelector('#agentName').addEventListener('click', function() {
  this.showPicker();
})

HTML代码(无需修改,和原代码一致)

<datalist id="suggestions">
     <option>First Option</option>
     <option>Second Option</option>
</datalist>
<input class="form-control" autoComplete="on" list="suggestions" id="agentName"/>

<button id="get-value">
Get Value
</button>
<p>
Selected Value: <span id="result"></span>
</p>

内容的提问来源于stack exchange,提问作者Dulani Maheshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 03:36:03