2009-05-05 5 views
12

J'ai un champ de saisie semi-automatique et je me demande comment je peux l'utiliser pour plusieurs mots? Quand je tape le premier mot cela fonctionne parfaitement, mais quand j'espace et tapez dans le deuxième mot, son envoie les deux mots de retour au serveur et bien sûr les résultats sont faux!Comment j'utilise JQuery Autocomplete pour plusieurs mots

par ex. quand je les deux mots,

« Java javascript »

le premier mot « Java », saisie semi-automatique fonctionne bien, tirez sur la liste.

mais lorsque je place et saisis javascript, la saisie semi-automatique envoie 'Java + javascript' à ma fonction ajax.

Des idées pour résoudre ce problème?

Répondre

10

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 stable ou de la distribution".

Cependant, je l'ai téléchargé et utiliser la version externe, disponible here:

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

il est un peu plus grand, mais l'utilisation est exactement le même, vous ne devez pas changer quoi que ce soit, pour la sélection multiple, ajouter aux options {multiples: true}

Mise à jour

jQueryUI a été mis à jour pour les nouveaux versi ons rendant cette réponse obsolète. Un exemple UpToDate se trouve ici

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

+0

La technique Bassistance a été abandonnée, voici le guide de migration pour utiliser la nouvelle saisie semi-automatique jQuery http: //www.learningjquery.com/2010/06/autocomplete-migration-guide – bizl

+0

Cette réponse est maintenant incorrecte - veuillez la supprimer. La réponse de Sams montre la bonne solution. –

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

Pour activer autocomplétion pour plusieurs mots que vous devez définir les options multiples: true et multipleSeparator: ""

+0

Je ne parviens pas à trouver les options "multiple" et "multipleSeparator" dans la documentation: http://docs.jquery.com/UI/Autocomplete Pouvez-vous élaborer? – Luke

+0

Il a mentionné le plugin ici http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/, pas le jqueryui –

0

Ajouter un commentaire à une réponse plus complète, disons que vous avez deux choix possibles avec un préfixe commun:

IP5, batterie IP5

si les types d'utilisateur dans la zone de texte ip5, la première sélection ci-dessus sera automatiquement choisie sans laisser l'utilisateur continuer à taper pour la deuxième sélection, pour éviter ce comportement, assurez-vous d'utiliser l'option

triggerSelectOnValidInput: true,

Questions connexes