jQuery autocomplete avec un tableau à id
Salut à tous !!
J'aimerais créer un champ d'autocompletion qui affiche une liste de nom, et lors de la sélection récupérer l'id du nom sélectionner pour le mettre dans un champ caché.
Donc pour ça j'ai en html :
Code:
1 2 3
|
<input type="text" id="filtre_nom" class="width: 300px;"/>
<input type="text" id="filtre_nom_id_selected" value=""/> |
Et dans le JS, je rempli mon tableau avec des données en provenance d'un web service.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
if(lstNom1.length > 0){
jQuery(xml).find('Nom1').each(function(){
var idNom1 = jQuery(this).find('id').text();
var nomNom1 = jQuery(this).find('libelle').text();
dataNom.push([idNom1, nomNom1]);
});
}
if(lstNom2.length > 0){
jQuery(xml).find('Nom2').each(function(){
var idNom2 = jQuery(this).find('id').text();
var nomNom2 = jQuery(this).find('libelle').text();
dataNom.concat([idNom2, nomNom2]);
});
}
if(lstNom3.length > 0){
jQuery(xml).find('Nom3').each(function(){
var idNom3 = jQuery(this).find('id').text();
var nomNom3 = jQuery(this).find('libelle').text();
dataNom.concat([idNom3, nomNom3]);
});
} |
Puis je fais l'autocompletion :
Code:
1 2 3 4 5 6 7 8 9
|
jQuery("#filtre_client").autocomplete(dataNom, {
mustMatch: true,
matchContains: true
}).result(function(event, data, formatted) {
if(data){
jQuery("#filtre_client_id_selected").val(data[0]);
}
}); |
Mon problème est qu'à chaque fois je ne remonte pas les bonnes infos... un coup il m'affiche que les id de la liste "Nom1", un coup rien du tout..
J'ai l'impression que mon tableau est de forme dataNom[i][id, nom] car quand je fait
il m'affiche la première ligne genre " 01 - robert " ...
Comment faire pour que dans l'autocompletion j'ai bien ce que je veux , c'est à dire les libellés à l'affiche puis les ids lors de la sélection (result) ?