2009-05-05 18 views
12

Tengo un campo de autocompletar y me pregunto cómo puedo usarlo para varias palabras? Cuando escribo la primera palabra, funciona perfecto, pero cuando espacio y escribo la segunda palabra, devuelve las dos palabras al servidor y, por supuesto, los resultados son incorrectos.¿Cómo uso JQuery Autocompletar para varias palabras

por ejemplo. Cuando escribo las dos palabras,

'Java javascript'

la primera palabra 'Java', autocompletar funciona bien, tirar de la lista.

pero cuando espacio y escribo javascript, autocompletar envía 'Java + javascript' a mi función ajax.

¿Alguna idea de cómo solucionar esto?

Respuesta

10

Parece que no se puede, la implementación incorporada no lo admite; puede ver en el enlace de arriba: "no es parte de la versión o distribución estable".

Sin embargo, he descargado y uso la versión externa, disponible here:

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

que es un poco más grande, pero el uso es exactamente el mismo, usted no tiene que cambiar nada, para la selección múltiple, se suman a las opciones {múltiple: true}

actualización

jQueryUI ahora se ha actualizado para los más nuevos Versi ons haciendo esta respuesta obsoleta. Un ejemplo uptodate se puede encontrar aquí

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

+0

Bassistance ha quedado obsoleto, aquí está la guía de migración para utilizar el nuevo autocompletado de jQuery http: //www.learningjquery.com/2010/06/autocomplete-migration-guide – bizl

+0

Esta respuesta ahora es incorrecta; elimínela. La respuesta de Sam muestra la solución correcta. –

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

Para habilitar la función de autocompletar de varias palabras que debe configurar las opciones múltiples: verdadera y multipleSeparator: ""

+0

No puedo encontrar las opciones "multiple" y "multipleSeparator" en la documentación: http://docs.jquery.com/UI/Autocomplete ¿Puedes dar más detalles? – Luke

+0

Mencionó el complemento aquí http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/, no el jqueryui –

0

Adición de un comentario a una respuesta más completa, digamos que usted tiene dos posibles selecciones con un prefijo común:

IP5, IP5 batería

si el usuario escribe en el cuadro de texto ip5, la primera selección de arriba se elegirá automáticamente sin dejar que el usuario siga escribiendo para la segunda selección. Para evitar este comportamiento, asegúrese de utilizar la opción

triggerSelectOnValidInput: true,

Cuestiones relacionadas