jQuery autocomplete affiche la valeur au lieu de l’étiquette

J’utilise jQuery-ui autocomplete . Voici comment je l’utilise

$('#txt').autocomplete({ source: [{'label': 'milan', 'value': '1'}, {'label': 'minos', 'value': '2'}] })

Quand je tape ‘mi’, milan et minos apparaissent. Pas de problème avec ça. Cependant, lorsque je #txt concentre sur eux avec la valeur de clé bas de #txt valeur #txt 1 (valeur pour milan) au lieu de milan . Comment puis-je montrer milan quand je me concentre sur elle. Merci

Comme le comportement par défaut de l’événement select consiste à afficher la valeur et non l’ étiquette , vous devez donc simplement:
renvoie false comme ” İsmail Hakkı Şen ” mentionné précédemment.
– ou vous pouvez utiliser event.preventDefault () pour empêcher l’exécution de l’action par défaut de l’événement, puis écrivez ce que vous devez faire comme suit:

 $('#txt').autocomplete({ source: [{'label': 'milan', 'value': '1'}, {'label': 'minos', 'value': '2'}], focus: function( event, ui ) { event.preventDefault(); $('#txt').val(ui.item.label); }, select: function( event, ui ) { event.preventDefault(); $('#txt').val(ui.item.label); } }); 

Veuillez vous référer à la réponse ” Andrew Whitaker ” dans cet article> Complétion automatique en appliquant une valeur et non une étiquette à une zone de texte – car elle est vraiment utile à la compréhension.

vous devez dire à votre code sur le focus pour faire quelque chose.

 $('#txt').autocomplete({ source: [{'label': 'milan', 'value': '1'}, {'label': 'minos', 'value': '2'}], focus: function( event, ui ) { $(this).val(ui.item.label); return false; }, select: function( event, ui ) { $(this).val(ui.item.label); return false; } });