Wie jQuery Autocomplete zu tun, die eine ID übergibt und nicht ein Name?
-
09-10-2019 - |
Frage
Ich war für jQuery UI automatische Vervollständigung, weil ich auf einem <input />
benötigt, aber das Problem ist, dass ich brauche die ID des Namens abgeschlossen passieren. Lassen Sie mich erklären:
Ich habe einen Array von Namen:
$names = array(
array('name' => 'John', id => '1'),
array('name' => 'Sarah', id => '2'),
array('name' => 'Josh', id => '3)
);
Und dann mit AJAX, wird der Eingang mit einem Namen des Arrays automatisch vervollständigt werden, aber dann, wenn ich einreichen, ich brauche die ID und nicht der Namen. Wie kann ich verwalten?
Vielen Dank im Voraus
Lösung
Die JQuery UI automatische Vervollständigung Kontrolle der Liste der Suchergebnisse als eine Reihe von Anzeigen akzeptieren kann / Objekte Wert.
Von Speichern erstellen Sie ein JSON-Objekt in folgendem Format ...
[
{label:"Display Name for result 1", value:1},
{label:"Display Name for result 2", value:2},
{label:"Display Name for result 3", value:3}
]
Das Label Eigenschaft enthält den Text anzuzeigen, und der Wert proberty enthält die ID. Diese Werte können überprüft werden, wenn ein Suchergebnis durch den Benutzer ausgewählt wird. Die Steuerung verfügt über einen select
Fall, dass Sie hören können.
Andere Tipps
Ihre Notwendigkeit, die ID in einem versteckten Feld zu speichern.
Sie können das auf der „select“ Ereignis erreichen. http://jqueryui.com/demos/autocomplete/#event-select
Dieses Beispiel zeigt das select-Ereignis http://jqueryui.com/demos/autocomplete/#custom-data
Die Idee ist, so etwas zu tun:
select: function( event, ui ) {
$( "#project-id" ).val( ui.item.value );
return false;
}