Sélection automatique du dernier élément de liste avec autocomplete

WRInaute occasionnel
Bonjour,

j'utilise un champs de recherche autocomplete.
Lorsque l'utilisateur effectue la saisie des premiers caractères tout fonctionne il sort bien une liste.
Par contre si la liste contient 1 seul item et que l'utilisateur ne prend pas forcement soin de le sélectionner avant de faire le submit, le formulaire est envoyé et renvoi un élément vide car l'élément de liste ne correspond à rien :

Exemple :

l'utilisateur tape "ch"
1 seul mot apparait -> "chaise"
ce mot apparait en dessous du champs de recherche en proposition
si l'utilisateur omet de le sélectionner avant d'envoyer le formulaire la valeur de l'input sera "ch" et non "chaise"

comment faire pour éviter cela,
j'ai déjà pas mal cherché sur internet mais je ne trouve pas une méthode ou même une idée,

Le code utilisé (à la place de "mon_resultat", j'ai ma requête sql et mon affichage en php :
Code:
 <script>
    $(document).ready(function(){ $("input#autocomplete").autocomplete({source: [<?php echo"mon_resultat" ?>}});
  </script>
 
WRInaute accro
La source peut être du JSON, ça ne m'étonne pas qu'il aie mis <?php echo"mon_resultat" ?> (sachant qu'il ne nous montre pas le contenu), ce n'est pas ça son problème.

Je vois plusieurs soluces:
- Tu disable l'input submit, et tu l'actives à l'event "select" du autocomplete.
- Tu mets dans une variable globale si l'event "select" s'est produit, et ensuite un listener sur le submit qui lis cette variable globale. Si select => submit, sinon effacer l'input text et ne pas submit.
 
WRInaute occasionnel
Merci Spout ça me parais pas mal du tout !
dans l'idée je pensais aussi ajouter un champ hidden et faire passer ma sélection dedans avec un disable sur l'input tant que le champ hidden ne contient rien... C'est casi le même principe
Merci !!
 
Discussions similaires
Haut