UPDATE : J'ai finalement trouvé une solution, le code ci-dessous devrait faire l'affaire. Pour une raison quelconque, le change
ne fonctionnait pas, mais le close
& select
les callbacks font. Utilisation de select
est préférable, puisque close
sera également appelé si le champ perd le focus.
$(function() {
$("#searchField").autocomplete({
source: "values.json",
select: function(event, ui) {
$("#searchForm").submit(); }
});
});
UNE AUTRE MISE À JOUR : Ok, il y a aussi un problème avec les select
callback, c'est-à-dire que par défaut (dans le code ci-dessus) si vous parcourez la liste déroulante de l'autocomplétion avec le clavier, et que vous sélectionnez avec la touche entrée, l'entrée est modifiée avant que le formulaire ne soit soumis. Cependant, si vous la sélectionnez avec la souris, le formulaire est soumis juste avant que l'entrée ne soit modifiée, de sorte que la valeur soumise est juste ce que l'utilisateur a tapé (et non ce qu'il a sélectionné dans la liste déroulante de la complétion automatique). La solution de contournement qui semble fonctionner est la suivante :
$("#searchField").autocomplete({
source: "values.json",
minLength: 2,
select: function(event, ui) {
$("#searchField").val(ui.item.label);
$("#searchForm").submit(); }
});