2016-03-25 20 views
-1

HTML:Wie verschiedene Arbeits auf gleiche Funktion durch inline implementieren 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 
    }); 
} 

Above Funktionalität Beispiele scheint, dass zwei unterschiedliche Arbeits, werden geschehen wird und auf jeder Textbox der Wert wird jeweils gesetzt.
Aber was ich den Wert empfange ändern Sie in beiden Fällen nur in die erste Textbox.

Antwort

0

allgemeinen Einstellung onclick s in HTML (Inline JS) ist keine gute Idee. Sie möchten Ihre Funktionalität idealerweise von Ihren Anzeigeelementen trennen. Also, was ich vorschlagen, ist, dass Sie onkeyup="function(...)" zu entfernen, und legen Sie entweder in Ihrer JS-Datei oder in einem js Skript an der Unterseite des HTML-Dokuments wie folgt:

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

Viel Glück!

1

jQuery('input.typeahead') sollte die korrekte Eingabe übereinstimmen (die spezifische Eingabe Sie derzeit typeaheading sind), ändern Sie ihn auf: jQuery('#' + divid)

Verwandte Themen