Hinzufügen von Werten zu jQuery autocomplete Echtzeit
Mache ich ein "token-input" - Stil " mit einer AutoVervollständigen - (Benutzer schreibt etwas, wählt eine Antwort, die fügt einen "token", um die DOM-Ansicht).
Mithilfe von jQuery-autocomplete, gibt es eine Möglichkeit, das hinzufügen von Werten, die nicht in den source
Liste nach dem Benutzer-Typen, die Sie in?
Beispielsweise eine Quelle sieht aus wie ["Apples", "Oranges", "Bananas"]
. Der Benutzer Typen in "plums,"
bei der Verwendung des text-Feld. Gibt es einen Weg, um hinzuzufügen, "Pflaumen", um die Liste der Quellen, wenn der Benutzer dies wünscht? Ich weiß, es gibt select
und change
Veranstaltungen, die ich überprüfen kann, aber select
funktioniert nur, wenn es auch etwas zu wählen (gibt es nicht in diesem Fall), und change
würde erfordern irgendeine Art von timeout-check, um zu überprüfen, dass der Benutzer aufgehört hatte zu Tippen.
Umgekehrt, gibt es ein anderes plugin, das ich nutzen könnte um dieses Verhalten zu erreichen?
- Konnte Sie nicht verwenden, das keyup-Ereignis?
change
sollte hier arbeiten. Es enthält einen timeout, nachdem der Mensch aufgehört hat, eingeben und navigiert vom Spielfeld entfernt. Welche Probleme hast du-Begegnung, wenn Sie versuchen, es zu benutzen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies sollte funktionieren mit
autocomplete
's change-Ereignis. Dieser code setzt Voraus gibt es eine Schaltfläche mit der idadd
wird angezeigt, wenn Sie hinzufügen möchten ein neues Element in der Liste. Es wird nicht angezeigt, wenn der Benutzer wählt ein Element aus der Liste. Es gibt einige Verbesserungen, die gemacht werden können, aber diese proof-of-concept sollte es möglich machen:Hier ein Beispiel: http://jsfiddle.net/rmGqB/
Update: Klingt wie ich etwas falsch verstanden, die Voraussetzung. Sie können auch auf in der Folge, dass AutoVervollständigen bevölkern die Kandidatenliste mit und fahren die Sichtbarkeit der Schaltfläche basierend auf, ob oder nicht die Ergebnisse die Suche ergab keine genauen Treffer:
Beispiel: http://jsfiddle.net/VLLuJ/
change
Veranstaltung benötigen, das Feld zu verwischen? Meine Sorge ist, dass, wenn der Benutzer einen neuen Wert, es werden keine Suchergebnisse zurückgegeben (verhält sich wie ein normales Textfeld). Wie würden Sie wissen, dass Sie "hinzufügen" den neuen Wert, wenn es nichts anzeigt, dass es neu ist? Gibt es einen Weg, um hook in das, was die von der Suche zurückgegebenen Methode?Die Antwort von Andrew bewirkt, dass die Schaltfläche NEU HINZUFÜGEN zu bleiben, selbst wenn der Benutzer wählt ein vorhandenes Element aus dem array statt der Zugabe von "neuen" !!!
Statt inklusive einer Anzeige über den button 'hinzufügen', gibt es eine integrierte in .ändern Sie die Funktion innerhalb von AutoVervollständigen, die verwendet werden können.
Obwohl "Ändern" wartet, bis das Textfeld den Fokus verliert, kann dies eine bessere Schnittstelle zu zeigen Sie dann die SCHALTFLÄCHE HINZUFÜGEN, wenn es nicht ein Spiel, um das array. (oder schaffen könnte, ein "bestätigen" hinzufügen).
Finden Sie unter alternativ-code, der eigentlich verbirgt sich der "Hinzufügen-Button" wieder, wenn der Benutzer wählt aus dem array. Etwas, das Andrew Whitaker, der die Lösung nicht :
Siehe meine überarbeitete Geige in Aktion - http://jsfiddle.net/VLLuJ/25/
Alte Frage, aber nützliche Antwort:
Aktualisieren der AutoVervollständigen-Quelle, mithilfe der setter:
$("#auto").autocomplete("option", "Quelle",
["Äpfel","Orangen","Bananen","Pflaumen"]);
Sehen http://api.jqueryui.com/autocomplete/#option-source