jquery-ui-autocomplete funktioniert nicht wählen Sie auf enter
Habe ich die jquery-ui autocomplete einem input-Feld und legen Sie einen ausgeblendeten Wert aus dem ausgewählten Element.
Diese habe ich mit dem
select: function(event, ui) { ...$("#myDiv").val(ui.item.value)... }
option (könnte falsch sein nun, die haben nicht den code bei der hand, aber es funktioniert bis meine Frage...)
Es funktioniert, wenn Sie wählen Sie ein Element aus dem Menü mit der Maus, aber wenn ich nur geben Sie text ein und wählen Sie ein Element mit der EINGABETASTE - es tut nichts, es ist, als wenn die Option ist nicht bei allen von der autocomplete-Funktion. Allerdings tabbing aus dem Feld löst den wählen.
Habe ich zu konzentrieren und zu ändern: auch aktualisieren Sie die Felder, die ich will, aber ich denke, das ist übertrieben, sollte es wirklich notwendig sein, geben Sie alle im Fokus, ändern, und wählen Sie, nur um sicher zu sein, dass jedoch ein Benutzer wählt ein Element aus der Liste wird ausgewählt.
Danke.
rofly: ich bin mit dem jquery-ui-autocomplete, hat es den code, den Sie geben, aber es sieht aus wie diese (aus der jquery.ui.autocomplete.js)
case keyCode.ENTER:
case keyCode.NUMPAD_ENTER:
//when menu is open or has focus
if ( self.menu.active ) {
event.preventDefault();
}
//passthrough - ENTER and TAB both select the current element
case keyCode.TAB:
if ( !self.menu.active ) {
return;
}
self.menu.select( event );
break;
Sieht, dass alle gut, so Im nicht sicher, wenn es fehlschlägt, weil dieser.
Mein code wie folgt aus (eingewickelt in Dokument.read()
$("#someDiv").attr("autocomplete", 'off');
$("#someDiv").autocomplete({
source: function(request, response) {
if ( request.term in cache ) {
response( cache[ request.term ] );
return;
}
$.ajax({
url: "giveMeJSON.jsp",
dataType: "json",
data: request,
success: function( data ) {
cache[ request.term ] = data;
response( data );
}
})},
minLength: 1,
delay: 300,
select: function(event, ui) {
$("#someDiv").val(ui.item.label);
$("#hiddenDiv").val(ui.item.value);
}
});
so, das problem ist, dies funktioniert, wenn der Benutzer die Auswahl aus dem Menü mit der Maus UND beim drücken der Tabulatortaste aus dem Feld (keyUp,keyDown wählen Sie dann die Registerkarte aus, funktioniert), aber keyUp -, keyDown-Ereignis zu wählen, itme, dann enter, und es passiert nichts!
- wenn Sie einen versteckten Eingang, es hat einen seltsamen id
myDiv
.... vielleichtchange: function(event, ui) { ...$("#myDiv").val(ui.item.value)... }
funktioniert
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer ähnlichen Instanz funktioniert bei mir mit jQuery 1.4.2 und jQuery-ui 1.8.7. Ein Nachteil ist, Geben Sie nur die zu funktionieren scheint, wenn die Auswahl einer Option aus der Liste. Wenn Sie einen neuen Eintrag erstellen, der nicht vorhanden ist, wird durch drücken der EINGABETASTE wird nicht ausgelöst, wählen Sie ändern oder Ereignisse. Ich hatte zum binden eines eigenen event-handler zu machen, dass die situation Fliegen.
Dieser arbeitete für mich, wo ich ein Formular nach dem automatischen ausfüllen.
Aus
Suchen Sie auf Klicken Sie mit der Jquery-Autocomplete
haben diese Parameter? set
Autofokus: true
Siehe Antwort hier: https://stackoverflow.com/a/9243511/74585