Ich entwickle ein Formular und verwende jQuery UI Autocomplete. Wenn der Benutzer eine Option auswählt, soll die Auswahl in einem Bereich angezeigt werden, der an das übergeordnete <p>
Tag angehängt ist . Dann möchte ich, dass das Feld gelöscht wird, anstatt mit der Auswahl gefüllt zu werden.
Ich habe die Spanne in Ordnung, aber ich kann das Feld nicht zum Löschen bringen.
Wie können Sie die Standardauswahlaktion von jQuery UI Autocomplete abbrechen?
Hier ist mein Code:
var availableTags = ["cheese", "milk", "dairy", "meat", "vegetables", "fruit", "grains"];
$("[id^=item-tag-]").autocomplete({
source: availableTags,
select: function(){
var newTag = $(this).val();
$(this).val("");
$(this).parent().append("<span>" + newTag + "<a href=\"#\">[x]</a> </span>");
}
});
Einfach zu machen $(this).val("");
funktioniert nicht. Was verrückt macht, ist, dass fast die genaue Funktion gut funktioniert, wenn ich die automatische Vervollständigung ignoriere und nur dann Maßnahmen ergreife, wenn der Benutzer ein Komma als solches eingibt:
$('[id^=item-tag-]').keyup(function(e) {
if(e.keyCode == 188) {
var newTag = $(this).val().slice(0,-1);
$(this).val('');
$(this).parent().append("<span>" + newTag + "<a href=\"#\">[x]</a> </span>");
}
});
Das eigentliche Endergebnis ist, dass die automatische Vervollständigung mit mehreren Auswahlen funktioniert. Wenn jemand Vorschläge dazu hat, wäre er willkommen.
quelle
$(this).val('');
).val('')
immer noch ein Aufruf an erfolgen. Dadurchreturn false;
wird nur verhindert, dass der Text des ausgewählten Elements im Eingabefeld angezeigt wird.Anstatt false zurückzugeben, können Sie auch event.preventDefault () verwenden.
quelle
return false wird innerhalb des Select-Rückrufs benötigt, um das Feld zu leeren. Wenn Sie das Feld jedoch erneut steuern möchten, dh den Wert festlegen möchten, müssen Sie eine neue Funktion aufrufen, um aus der Benutzeroberfläche auszubrechen.
Vielleicht haben Sie einen Eingabeaufforderungswert wie:
Legen Sie es als Wert des Elements fest. (Im Fokus setzen wir auf '').
quelle
Es funktioniert gut für mich.
Nach dem ausgewählten Ereignis habe ich die Ereignisänderung verwendet.
Ich bin ein Anfänger!
quelle
quelle
Ich habe es gerade gelöst und den Fokus verloren:
quelle