Javascript 在输入框中键入要搜索的内容

Javascript 在输入框中键入要搜索的内容,javascript,html,input,Javascript,Html,Input,我有一个表单,用户可以选择他们的职业。职业列表位于单独的.js文件中,如下所示: var occupationSelect = "<select id='occupationSelect' onchange='selectChange()' ><option value=''></option><option value='v10173' >AA Patrolman</option><option value='v10174' &

我有一个表单,用户可以选择他们的职业。职业列表位于单独的.js文件中,如下所示:

var occupationSelect = "<select id='occupationSelect' onchange='selectChange()' ><option value=''></option><option value='v10173' >AA Patrolman</option><option value='v10174' >Abattoir Inspector</option>
var-occulationselect=“AA巡查员
现在在我的表单中,我想要一个输入框(因为职业列表很长),让用户键入A、B等,然后出现相关的职业

如果我把所有职业放在一个数组中,这把小提琴就可以了

但是,my.js文件中的选项具有附加值,供以后在web应用程序中使用(例如,option value='v10173')

通过键入获得职业的最佳选项是什么,同时还要确保附加值。

编辑了js FIDLE:

<input name="car" list="anrede" />
<input name="car-val" hidden />
<ul id="anrede"></ul>

var mycars2 = [
['Herr', 'herr'],
['thomas', 'v2345'],
];
var list = $('#anrede');

listHtml = '';
mycars2.forEach(function(item){
   var option = '<li data-val="' + item[1] + '">' +         item[0] + '</li>';
   listHtml += option;
});

list.html(listHtml);

$('#anrede li').on('click', function(){
    $('input[name="car"]').val($(this).html());
    $('input[name="car-val"]').val($(this).attr('data-val'));
});

    var mycars2=[ [先生],[先生], ['thomas','v2345'], ]; 风险值列表=$('anrede'); listHtml=''; mycars2.forEach(功能(项目){ var option='
  • '+item[0]+'
  • '; listHtml+=选项; }); html(listHtml); $('anrede li')。在('click',function()上{ $('input[name=“car”]').val($(this.html()); $('input[name=“car val”]').val($(this.attr('data-val')); });
    这需要jquery,并且名称/值成对存储在列表中

    值使用隐藏输入。

    编辑了js小提琴:

    <input name="car" list="anrede" />
    <input name="car-val" hidden />
    <ul id="anrede"></ul>
    
    var mycars2 = [
    ['Herr', 'herr'],
    ['thomas', 'v2345'],
    ];
    var list = $('#anrede');
    
    listHtml = '';
    mycars2.forEach(function(item){
       var option = '<li data-val="' + item[1] + '">' +         item[0] + '</li>';
       listHtml += option;
    });
    
    list.html(listHtml);
    
    $('#anrede li').on('click', function(){
        $('input[name="car"]').val($(this).html());
        $('input[name="car-val"]').val($(this).attr('data-val'));
    });
    
    
    
      var mycars2=[ [先生],[先生], ['thomas','v2345'], ]; 风险值列表=$('anrede'); listHtml=''; mycars2.forEach(功能(项目){ var option='
    • '+item[0]+'
    • '; listHtml+=选项; }); html(listHtml); $('anrede li')。在('click',function()上{ $('input[name=“car”]').val($(this.html()); $('input[name=“car val”]').val($(this.attr('data-val')); });
      这需要jquery,并且名称/值成对存储在列表中


      值使用隐藏输入。

      我建议对所选项目和对象数组的
      “值”
      使用
      数据值
      属性,如下所示:

      var mycars = [
       {
        title: 'Herr',
        value: 'Herr Value'
       },
       {
        title: 'Frau',
        value: 'Frau Value'
       }
      ];
      var list = document.getElementById('anrede');
      var input = document.getElementById('carList');
      mycars.forEach(function(item) {
        var option = document.createElement('option');
        option.value = item.title;
        option.dataset.value = item.value;
        list.appendChild(option);
      });
      input.onchange = function() {
        alert(document.querySelector('option[value="' + this.value + '"]').dataset.value)
      }
      

      以下是JSFIDLE-

      我建议对所选项目和对象数组的
      “value”
      使用
      数据值
      属性,如下所示:

      var mycars = [
       {
        title: 'Herr',
        value: 'Herr Value'
       },
       {
        title: 'Frau',
        value: 'Frau Value'
       }
      ];
      var list = document.getElementById('anrede');
      var input = document.getElementById('carList');
      mycars.forEach(function(item) {
        var option = document.createElement('option');
        option.value = item.title;
        option.dataset.value = item.value;
        list.appendChild(option);
      });
      input.onchange = function() {
        alert(document.querySelector('option[value="' + this.value + '"]').dataset.value)
      }
      

      这是JSFIDLE-

      你能链接到这个提琴吗?我已经复制并添加了jquery url,但运气不好?没有css的ul非常难看。如果你从第二个输入中删除隐藏项,你可以看到它正在把值放在那里。谢谢,你是说删除隐藏项,然后在第二个输入框中键入Herr应该让Herr出现?我刚刚编辑了代码笔,以使用datalist作为原始数据,因此搜索功能保留。这是正确的,该值应添加到第二个输入中。在浏览器检查器中将
      display:block
      添加到该代码笔中也会起作用。如果我键入Herr,如何测试该代码笔,以显示正在输入Herr和Herr您可以链接到此fid吗dle?我已经复制并添加了jquery url,但没有运气?没有css的ul非常难看。如果你从第二次输入中删除隐藏内容,你可以看到它将值放在那里。谢谢,所以你是说删除隐藏内容,然后键入Herr应该让Herr出现在第二个输入框中?我刚刚编辑了代码笔,以使用datalist作为原始输入因此,搜索功能仍然存在。这是正确的,应该将值添加到第二个输入中。在浏览器检查器中将
      display:block
      添加到该值也应该起作用。如果我键入Herr,如何测试该值以显示正在输入Herr和Herr