Sé que esto se ha dicho antes, pero jQuery Autocomplete va a hacer exactamente lo que necesita. Debería verificar los documentos ya que la autocompleta es muy personalizable. Si está familiarizado con javascript, entonces debería poder resolver esto. Si no, puedo darte algunos consejos, como ya lo hice una vez, pero ten cuidado de que tampoco estoy bien versado en javascript, así que ten paciencia conmigo en esto.
Creo que lo primero que debe hacer es obtener un campo de texto de autocompletar simple que funcione en su página, y luego puede personalizarlo desde allí.
El widget de autocompletar acepta datos JSON ya que es la opción 'fuente:'. Por lo tanto, debe configurar su aplicación para producir las 20 categorías de nivel superior y las subcategorías en formato JSON.
Lo siguiente que debe saber es que cuando el usuario escribe en su campo de texto, el widget de autocompletar enviará los valores escritos en un parámetro llamado "término".
Así que digamos que set-up primero su sitio para ofrecer los datos JSON desde una URL como esta:
/categories.json
Luego, su fuente de autocompletar: opción sería la 'fuente: /categories.json'.
Cuando un usuario introduce en el campo de texto, tales como 'primera cata ...' el widget de autocompletar comenzará a enviar el valor en el parámetro 'término' como esto:
/categories.json?term=first-cata
Esta voluntad devuelve datos JSON al widget filtrado por cualquier cosa que coincida con 'first-cata', y esto se muestra como una sugerencia de autocompletar.
No estoy seguro de lo que está programando, pero puede especificar cómo el parámetro 'término' encuentra una coincidencia. Así que puedes personalizar esto para que el término encuentre una coincidencia en el medio de una palabra si quieres. Ejemplo, si el usuario escribe 'o' su código podría hacer coincidir 'sp o ts'.
Por último, usted hizo un comentario de que desea poder seleccionar un nombre de categoría pero hacer que el widget de autocompletar envíe el ID de categoría no el nombre.
Esto se puede hacer fácilmente con un campo oculto. Esto es lo que se muestra en los documentos de autocompletado de jQuery.
Cuando un usuario selecciona una categoría, su JavaScript debería actualizar un campo oculto con la ID.
Sé que esta respuesta no es muy detallada, pero eso se debe principalmente a que no estoy seguro de lo que está programando, pero lo anterior debe apuntar en la dirección correcta. Lo que hay que saber es que puedes hacer prácticamente cualquier personalización que desees con este widget, si estás dispuesto a dedicar el tiempo para aprenderlo.
Estos son los trazos generales, pero puede look here para algunas notas que hice cuando implementé algo similar a lo que desea en una aplicación de Rails.
Espero que esto haya ayudado.
Esto es exactamente por lo que amo Stackoverflow. ¡GRACIAS! – palmic
@Lance May, hai También estoy buscando lo mismo que sugirieron. Pero quiero hacer eso con ajax autocompletado. En lugar de automatización estática completa. Buscando una solución ... – vissu
A menos que te esté malinterpretando, Vissu, simplemente deseas que esta lista sea devuelta desde una ubicación remota en lugar de ser un conjunto de opciones codificadas. Si eso es correcto, hay una muestra remota en la misma página (anchor diferente, pero aún la misma demo) que puede ayudar a http://jqueryui.com/demos/autocomplete/#remote. Si eso no es lo que querías decir, házmelo saber. Gracias. – Lance