javascript - 从输入下拉列表中获取所选值的索引/区分重复值

标签 javascript html dom

我目前正在努力实现一个搜索栏,该搜索栏会根据用户输入动态填充名称。每个名字都有一个对应的id。我可以从数据库请求 ID 和名称。 我允许在数据库中输入重复的名称。 为了简化事情,我们假设数据库具有以下值:

{name:"Name1",id:1}, {名称:"名称2",id:2}, {名称:“名称2”,id:3}

在输入字段中输入“名称”时,它会在下拉列表中显示值“名称1”、“名称2”、“名称2”。 假设用户选择了第二个条目(“Name2”),那么我如何判断他选择的是相应 id 为 2 的“Name2”值还是 id 为 3 的值?

一个想法是以某种方式获取所选值的索引,但我不知道该怎么做。

https://jsfiddle.net/zka067y3/3/

最佳答案

尝试以下 jQuery 脚本和 HTML 代码。

$('#inputValues').on('input',function(){
    var g=$('input[type="text"]').val();  
  var id = $('#playernames').find('option').filter(function() { return $.trim( $(this).text() ) === g; }).attr('id');
    alert(id);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
  <div> 
  <input id="inputValues" type="text" name="userName" list="playernames">
  <datalist id="playernames">
  <option value="Name1" id="1">Name1</option>
  <option value="Name2" id="2">Name2</option>
  <option value="Name2" id="3">Name2</option>
  </datalist>
</div>

关于javascript - 从输入下拉列表中获取所选值的索引/区分重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61370353/

相关文章:

javascript - 为什么我的 toastr 通知在 Laravel 中无法正常工作?

html - 在 CSS Grid 中使网格项内的内容等于高度

jquery - 如何让新插入的<tr>标签占据表格的总宽度

javascript - 测试元素是否可以包含文本

javascript - 使函数仅影响 onclick=function(this) 中的 'this' 对象

javascript - 在 Three.js 中使用 OBJLoader 时出现 CORS 问题

javascript - 为什么 Chrome 在执行 "normal reload?"时不重新验证内存缓存

javascript - 输入值不显示在字段中

javascript - 如何在 react 中的一组元素中识别单个 div 元素?

html - Bootstrap 4 卡片页脚未与页面底部对齐