Ich verwende die benutzerdefinierte Bindung in Autocomplete-Combobox mit Knockout JS-Vorlage / JQuery
Ich muss erzwingen, dass der Benutzer einen Wert in der Autocomplete-Liste auswählen muss und nachdem er den Wert ausgewählt hat, um der Auswahl keinen zusätzlichen Text hinzufügen zu können. Ich habe gesucht, aber ich kann kein Beispiel dafür finden, wie verhindert werden kann, dass zusätzlicher Text eingegeben wird. Sie muss editierbar bleiben, wenn sie das falsche Dropdown ausgewählt haben, aber was sie tippen, muss mit einem Wert aus der Liste übereinstimmen.
Ich fand dieses Posting auf jquery, aber es ist 9 Monate alt und niemand hat eine Antwort gepostet.
Es gibt keine eingebaute Funktion, um das zu tun, was Sie wollen.
Ich habe ein einfaches Projekt erstellt, bei dem das Autocomplete-Ereignis change
verwendet wird, bei dem Sie den Wert aus dem auswählen müssen Autovervollständigen, wenn nicht der Wert gelöscht wird.
Ändern Sie das Ereignis
Wird ausgelöst, wenn das Feld unscharf ist, wenn sich der Wert geändert hat.
Nach der Auswahl wurde das Feld deaktiviert und Sie können es zum Beispiel mit einem aktivierenden Anker aktivieren.
Code:
%Vor%Hier ist eine Geige: Ссылка
Dies ist ein älterer Beitrag, aber ich denke, dass er aus Sicht von UX wegen des Fokusproblems leicht unvollständig ist (er ändert sich nicht, bis der Fokus aus der Eingabe entfernt wird, in diesem Fall '#artist', ziemlich ärgerlich), also würde ich hinzufügen:
%Vor%so (nehmen wir an, es ist eine Schaltfläche, die wir versuchen zu aktivieren), dass der Benutzer das aktivierte Objekt unmittelbar nach der Auswahl sieht.
Tags und Links knockout.js javascript jquery jquery-ui