jQuery autocomplete "Antwort" - event
Ich bin mit jQuery UI autocomplete, wie beschrieben, [http://api.jqueryui.com/autocomplete/]
Muss ich ein paar Dinge zu tun, bevor und nachdem die Suche ausgeführt wird. Aus der Lektüre der Dokumentation unter der oben genannten URL, der es beschreibt zwei Methoden, die "Suche" und "Reaktion", die ausgelöst werden, bevor und nachdem die Abfrage ausgeführt wird - perfekt. ABER, wenn ich diese zu meinem code "Suche" funktioniert perfekt, aber "Antwort" wird nie aufgerufen. Was mache ich falsch? Alle mein code funktioniert, keine javascript-Fehler, AutoVervollständigen funktioniert perfekt. Aber ich habe einfach nicht immer die "response" - Methode ausgelöst wird.
$(function() {
$("#tv").autocomplete({
source: "a_url_providing_json",
minLength: 4,
select: function(event, ui) {
$('#state_id').val(ui.item.id);
$('#abbrev').val(ui.item.abbrev);
},
search : function(a,b) {
alert('this works!');
},
response : function(a,b) {
alert('this doesnt!');
}
})
});
Vielen Dank für jeden Rat !
- Ist, dass der code so wie es da steht? Sie scheinen nicht zu schließen die
.autocomplete
oder die$(function() {
mit der schließenden Klammer. Auch glaube ich nicht, benötigen Sie ein Komma nach derresponse: {}
Abschnitt, wie es ist der Letzte in der Liste fürautocomplete
. - hi ,sorry, Nein, es ist nicht eine vollständige code-fragment, nur zur Veranschaulichung der "response" - Methode. Ich werde zu aktualisieren, um den vollständigen code, aber wie sage ich Ihr alle arbeiten, autcomplete funktioniert perfekt, nur ich verstehe nicht, warum die Antwort-Funktion nicht ausgelöst. tahanks
- Schwer zu nennen an dieser Stelle. Nach der Dokumentation, die Sie im Zusammenhang mit hier response aufgerufen wird, nachdem eine Suche ausgeführt wird, aber bevor die Ergebnisse angezeigt werden, so dass, wenn Ihr
search :
ausgelöst und zeigt Ihnen das funktioniert! aber Sie werden dann nie sehen diese nicht! dann ist vielleicht die Suche ist nicht abgeschlossen, wenn es sieht, an die Daten vona_url_providing_json
und so die Veranstaltung für die Antwort niemals feuert. Ich fühle mich wie ich brauche, um zu sehen, mehr code als das, was Sie jetzt haben, das gültig sein sollte syntaktisch. - danke, aber das ist ja auch der js-code ist. Ich denke, ich könnte fügen Sie die web-Seite, aber das ist ziemlich groß. und wie das AutoVervollständigen funktioniert zu 100%, die server-url aufgerufen wird, wird das json geparst wird, wird der drop-down-Menü angezeigt wird, funktioniert alles perfekt... aber es wird einfach nicht Feuer die Antwort-Methode. Es ist nichts falsch auf der javascript-Konsole entweder. Alles ist hunky dory.. aber eben keine Antwort-Methode. Ah gut, danke trotzdem
- jQuery UI 1.9 stellt die Antwort-Rückruf (jqueryui.com/upgrade-guide/1.9/#added-response-event).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese callback-Methode kam mit dem neuen jquery-ui. Ich konnte nicht damit es funktioniert, aber nachdem ich aktualisiert 1.8.20 zu 1.9.2 die callback-feuert so wie es soll.
Hoffe, es hilft!
Vorausgesetzt, dass alle Ihre code korrekt ist, müssen Sie möglicherweise aktualisieren Sie Ihre version von jQuery UI (und die entsprechenden jQuery als gut). Dieses ist, weil, obwohl die Unterlagen, die Sie waren auf der Suche an, sagt "Autocomplete-widget version Hinzugefügt: 1.8," das Antwort-Ereignis wurde nicht Hinzugefügt, bis 1.9 (Siehe jQuery 1.9 Upgrade-Handbuch: Antwort-Event) Dies bedeutet auch, dass Sie nicht in der Lage zu "Binden Sie einen Ereignis-listener, um die autocompleteresponse Ereignis", wie die Anleitung besagt.
Nachdem Sie ein upgrade auf ein jQuery-und jQuery-UI-version, die unterstützt die AutoVervollständigen-Antwort-event, dieser code funktioniert wie erwartet.
Als Tipp, um jemand neues zu diesem event, im Hinterkopf behalten, dass, wenn Sie die Daten ändern, müssen Sie sowohl den Wert und die label-Eigenschaften für jedes Element, das Sie hinzufügen möchten, auch wenn Ihre Quell-Daten war nur ein array von Werten. Dies ist, weil, sobald der Inhalt wird in diesem Fall, es hat schon 'normalisiert' (das ist das label wurde verglichen mit einem Wert).
Also, wenn Sie wollen, fügen Sie "Andere", um die zurückgegebenen Ergebnisse, Ihre Antwort Fall Aussehen würde:
Dies wird fügen Sie eine "Andere" - option, um jede Liste, die einen input-Wert " - Option."