Domanda

Ero alla ricerca di jQuery UI completamento automatico perché avevo bisogno di un <input /> ma il problema è che ho bisogno di passare l'id del nome completato. Mi spiego:

Ho un array di nomi:

$names = array(
    array('name' => 'John', id => '1'),
    array('name' => 'Sarah', id => '2'),
    array('name' => 'Josh', id => '3)
);

E poi, con AJAX, l'ingresso verrà compilato automaticamente con un nome della matrice, ma poi, quando mi presento, mi serve l'id e non il nome. Come posso gestire?

Grazie in anticipo

È stato utile?

Soluzione

Il controllo JQuery UI Autocomplete può accettare l'elenco dei risultati di ricerca come un insieme di visualizzazione / oggetti valore.

Dalla memoria, si crea un oggetto JSON nel seguente formato ...

[
    {label:"Display Name for result 1", value:1},
    {label:"Display Name for result 2", value:2},
    {label:"Display Name for result 3", value:3}
]

La proprietà etichetta contiene il testo da visualizzare e il valore proberty contiene l'ID. Questi valori possono essere controllati quando un risultato di ricerca viene selezionato dall'utente. Il controllo ha un evento select che si può ascoltare.

Altri suggerimenti

Il vostro bisogno di salvare l'ID in un campo nascosto.

È possibile ottenere che l'evento "selezionare". http://jqueryui.com/demos/autocomplete/#event-select

Questo esempio mostra l'evento select http://jqueryui.com/demos/autocomplete/#custom-data

Quindi, l'idea è di fare qualcosa di simile:

        select: function( event, ui ) {
            $( "#project-id" ).val( ui.item.value );
            return false;
        }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top