Ich habe ein Autovervollständigungssteuerelement jQuery UI, das eine Ajax-Anforderung auslöst, wenn minLength = 3 ist. Das Problem ist wie folgt: Angenommen, ich gebe "fic" als Initial ein Suchbegriff - das ist in Ordnung. Die Anforderung wird ausgelöst und die Ergebnisse werden zurückgegeben. Ich entscheide, dass ich keines der Ergebnisse auswählen und dann die gleiche Suche erneut eingeben möchte (fic). Diesmal wird keine Ajax-Anfrage ausgelöst!jQuery UI Autocomplete löst keine Suche aus, wenn ein bisher gesuchter Begriff eingegeben wird
Mein Code ist unten dargestellt:
// ... do request
$("#reportSearch").autocomplete({
delay: 50,
minLength: 3,
source: function(q, add){
$.ajaxSetup ({ cache: false});
$.ajax({
type: "GET",
url: K_URL_REQUEST
Also im Grunde der „Quelle“ Rückruf wird im zweiten Szenario nicht gefeuert ich oben beschrieben. Es zeigte sich, dass der Grund dafür war, dass die zur automatischen Vervollständigung Kontrolle wurde auf die vorherigen Suchwort halten und weil es angepasst - nicht wurde das Auslösen einer Suche:
// Taken from jquery-ui-1.8.4.custom.min.js
if (a.term != a.element.val()) { // *** THE MATCH IS HERE
//console.log("a.term != a.element.val(): "+a.term+", "+a.element.val());
a.selectedItem = null;
a.search(null, c) // *** SEARCH IS TRIGGERED HERE
}
Um es zu bekommen Um jedes Mal zu feuern, setze ich den Suchbegriff einfach auf null zurück, nachdem eine Suche zurückgegeben wurde. So hat es wie erwartet funktioniert.
Die Sache ist, ich verstehe dieses Verhalten nicht. Ich hätte gedacht, dass jede Suche verschieden sein sollte. Es gibt kein Caching (oder sollte es nicht sein).
Also obwohl ich mein Problem behoben habe, habe ich das Gefühl, dass ich hier etwas verpasst habe.
Irgendwelche Ideen jemand? Danke im Voraus!
Whate hat Ihr [** 'search' **] (http://docs.jquery.com/UI/Autocomplete#event-search) Ereignis Blick mögen? Wie ich es verstehe, sollte die Autocomplete in Ihrem zweiten Szenario auslösen. –
Beachten Sie, wie Sie 'jav' eingeben können, löschen Sie es und geben Sie es erneut ein, und es funktioniert immer noch mit dieser Demo ==> http://jsfiddle.net/KFrQm/. –
Hallo Peter - Ich habe kein Such-Event. Es ist nicht notwendig, die Suche zu starten. Sie haben Recht mit dem Beispiel. Das habe ich schon vorher bemerkt - der einzige Unterschied ist, dass meine Quelle eine Ajax-Anfrage ist. – peetj