Ich benutze twitter bootstrap typeahead für die Anzeige einiger Daten vom Server, das Problem ist, wenn Benutzer einen Buchstaben typeahead schreibt einen Ajax-Aufruf an den Server und wenn ich versuche, 2 oder 3 Buchstaben schnell zu schreiben es 2 oder 3 ajax-Aufrufe an den Server, gibt es eine Möglichkeit, eine Verzögerung zu machen, wenn Benutzer Buchstaben machen nur ein ajax-Aufruf an den ServerTwitter bootstrap typeahead Verzögerung
meinen Code zur Zeit eingeben:
$('#SEARCH-INPUT').typeahead({
source: function (query, process) {
jQuery.ajax({
type: "GET",
url: "/organisations/search",
data: {search_name: $("#SEARCH-INPUT").val()},
beforeSend: function(){
$("#SEARCH-LOADING").show();
},
success: function (data) {
organisations = [];
organisations_hash = {};
$.each(data, function(i, item){
organisations_hash[item.name.toUpperCase()] = item.id;
organisations.push(item.name);
});
organisations.sort();
$("#SEARCH-LOADING").addClass("hidden");
process(organisations);
},
error: function(){ alert("error");},
async: false
});
}
,updater: function (item) {
$("#SEARCH-INPUT").val(item);
$("#SEARCH-BUTTON").click();
return item;
}
,items: 9
,minLength: 1
});
danke, funktioniert perfekt – Maki
Es hat einen Fehler - wenn Sie eine MinLength gesetzt haben, wenn Sie dann schnell durch den eingegebenen Text zurück und löschen Sie die Eingabe, dann endet das Timeout stil feuern. Ich würde erwarten, dass es nicht ... siehe dieses Beispiel: http://jsfiddle.net/nnPVn/16/ –
Die obige Frage hat dieses Problem nicht, weil minLength 1 ist (die Standardeinstellung). – MrBoolean