Comment utiliser JQuery Autocomplete pour plusieurs mots

J’ai un champ autocomplete et je me demande comment puis-je l’utiliser pour plusieurs mots? Lorsque je tape le premier mot, cela fonctionne parfaitement, mais quand j’espace et que je tape le deuxième mot, il renvoie les deux mots au serveur et, bien sûr, les résultats sont erronés!

par exemple. quand je tape les deux mots,

‘Java javascript’

le premier mot “Java”, autocomplete fonctionne bien, tirez la liste.

mais quand j’espace et tape javascript, autocomplete envoie ‘Java + javascript’ à ma fonction ajax.

Une idée de comment réparer ça?

On dirait que vous ne pouvez pas, l’implémentation intégrée ne le supporte pas – vous pouvez voir dans le lien ci-dessus: “ne fait pas partie de la version ou de la dissortingbution stable”.

Cependant, j’ai téléchargé et utilisé la version externe, disponible ici :

http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/

c’est un peu plus gros, mais l’utilisation est exactement la même, vous n’avez rien à changer, pour une sélection multiple, ajoutez aux options {multiple: true}

Mettre à jour

JQueryUI a été mis à jour pour les dernières versions, rendant cette réponse obsolète. Un exemple à jour peut être trouvé ici

http://jqueryui.com/demos/autocomplete/#multiple

Si vous utilisez la version “bassistance” d’Autocomplete, elle est intégrée. Mais si vous utilisez la version de jQuery UI, voici un exemple:

http://jqueryui.com/demos/autocomplete/#multiple

$("#tagnames").autocomplete("/tags/filter", { max: 6, highlightItem: true, multiple: true, multipleSeparator: " ", }) 

Pour activer la saisie automatique pour plusieurs mots, vous devez définir les options multiple: true et multipleSeparator: “”

Ajoutant un commentaire pour une réponse plus complète, supposons que vous ayez deux sélections possibles avec un préfixe commun:

ip5 , ip5 batterie

si l’utilisateur tape dans la zone de texte ip5, la première sélection ci-dessus sera automatiquement choisie sans permettre à l’utilisateur de continuer à taper pour la deuxième sélection. Pour éviter ce problème, assurez-vous d’utiliser l’option

sortingggerSelectOnValidInput: true,