2016-03-25 9 views
-1

HTML:インラインを通じて同じ機能で別の作業を実装する方法のJavaScript

<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 
    }); 
} 

例の機能の上には、値二つの異なる作業が起こったことになると思われ、各テキストボックスにそれぞれ設定されます。
しかし、私が値を受け取っているのは、両方のケースでのみ最初のテキストボックスに変わります。

答えて

0

(インラインJS)は良いアイデアではありません。理想的には、機能を視聴要素から切り離したいと思うでしょう。だから私は、次のように使用すると、HTMLドキュメントの一番下にあなたのJSファイルやjsのスクリプトのいずれかでonkeyup="function(...)"を削除し、設定であることを示唆するもの:

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

幸運!

1

jQuery('input.typeahead')は、正しい入力(現在typeaheadingしている特定の入力)と一致し、それを変更する必要があります。HTMLでonclick秒を設定、一般jQuery('#' + divid)