Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Typeahead.js和JSON键值更新隐藏的输入字段_Javascript_Jquery_Json_Typeahead.js - Fatal编程技术网

Javascript 使用Typeahead.js和JSON键值更新隐藏的输入字段

Javascript 使用Typeahead.js和JSON键值更新隐藏的输入字段,javascript,jquery,json,typeahead.js,Javascript,Jquery,Json,Typeahead.js,我在一个页面上有一个工作的typeahead元素,它从一个远程url获取数据,该url返回一个JSON字符串,比如[{“id”:“1”,“name”:“Ben”},{“id”:“2”,“name”:“Josh”}] 我希望一个隐藏的字段被更新为相应的ID号。我当前的typeahead设置如下 $('.typeahead').typeahead({ name: 'typeahead', remote: { url: 'backend/clients.php?query=%QUERY', f

我在一个页面上有一个工作的typeahead元素,它从一个远程url获取数据,该url返回一个JSON字符串,比如
[{“id”:“1”,“name”:“Ben”},{“id”:“2”,“name”:“Josh”}]

我希望一个隐藏的字段被更新为相应的ID号。我当前的typeahead设置如下

$('.typeahead').typeahead({
name: 'typeahead',
remote: {
  url: 'backend/clients.php?query=%QUERY',
  filter: function(data) {
    var resultList = data.map(function(item) {
      return item.name;
    });
    return resultList;
  }
}
});

您可以为选择建议时触发的自定义事件绑定处理程序。将使用两个参数调用事件处理程序:jQuery事件对象和所选的建议对象。根据选定的值更新隐藏字段

var resultList, d;
$('.typeahead').typeahead({    
    name: 'typeahead',
    remote: {
      url: 'backend/clients.php?query=%QUERY',
      filter: function(data) {
        d = data;
        resultList = data.map(function(item) {
          return item.name;
        });
        return resultList;
      }
    }    
}).on('typeahead:select', function(ev, suggestion) {
     $('#hidden-input').val(suggestion.id);
    // $('#hidden-input').val(d[resultList.indexOf(suggestion)].id);
});
Ref:

我认为:$('#隐藏输入').val(d[resultList.indexOf(suggestion)].id);可以更简单地替换为:$(“#隐藏输入”).val(suggestion.id);