如何通过内联JavaScript实现不同的相同功能

时间:2016-03-25 13:49:58

标签: javascript function typeahead

HTML:

<input type="textbox" class="typeahead" id="location" onkeyup="localTypeahead('location')">
<input type="textbox" class="typeahead" id="location2" onkeyup="localTypeahead('location2')">

JAVASCRIPT:

function localTypeahead(divid){  

     var citylocalvalues = [{'id':101,'name':'jaipur'}, {'id':102,'name':'delhi'}];

     jQuery('input.typeahead').typeahead({   
        onSelect: function(item) {
        jQuery("#"+divid).val(item.value);    
     },  
     source: citylocalvalues   
     });
}

以上示例功能似乎将发生两种不同的工作,并且在每个文本框上将分别设置值 但是,我收到的价值仅在两种情况下都改为第一个文本框。

2 个答案:

答案 0 :(得分:1)

jQuery('input.typeahead')应该匹配正确的输入(您目前正在输入的特定输入),将其更改为:jQuery('#' + divid)

答案 1 :(得分:0)

通常,在HTML(内联JS)中设置onclick并不是一个好主意。理想情况下,您希望将功能与查看元素分开。所以我建议您删除onkeyup="function(...)",并在您的JS文件或html文档底部的js脚本中设置如下:

$(document).ready(function() {
  $('#location').on('keyup', function(ev) {
    // You can access the object that fired the keyup event through the variable ev here
  });
});
祝你好运!