5

he intentado buscar casos similares y me encontré con algunos, pero cada vez, el código es un poco diferente y no logro encontrar la solución ...

jQueryUI autocompletar con los resultados se puede hacer clic

estoy usando jQuery Autocompletar en mi sitio web con datos de una base de datos mysql.
Los resultados están ordenados por categorías para mostrar tanto los productos como las marcas en la misma entrada
¡Así que naturalmente pegué el ejemplo de su sitio web en el mío y funciona bien!
Los JSON generados se ven así

{"label":"Product 1","url":"product.php?id=1","category":"Products"} 

Mi único problema es que me gustaría que los resultados sean hacer clic. Entonces, cuando el usuario hace clic en un resultado, se carga otra página en lugar del comportamiento predeterminado que está llenando la entrada con los datos.

He creado una demo en jsFiddle para que pueda ver lo que está pasando
http://jsfiddle.net/fJ22W (datas más están contenidos en el js aquí)

su ayuda es más que bienvenida, creo que esto no es un gran problema, pero mis pobres habilidades en jQuery me impide resolver ese problema ...

Bertrand

+0

¿Está trabajando su violín? –

+0

tiene razón, no funcionó reparado: http://jsfiddle.net/fJ22W/2/ – Bertrand

Respuesta

6

Utilice el evento select:

$("#search").catcomplete({ 
     source: 'suggest_zip.php', 
     select: function(event, ui) { 
      window.location = ui.item.url; 
     } 
    }); 

Obviamente usted quiere tener alguna validación alrededor de la url etc.

Por lo que vale la pena también me gustaría recomendar el uso de autocompletar el widget por defecto y el uso de los eventos y opciones en lugar de tratar de heredar de ella. Su código será mucho más limpio y menos posibilidades de errores extraños.

+1

¡OH! Funciona. ¡Ya había visto esta opción pero me faltaba un paréntesis! Gracias Chao, ¡me salvaste el día! ¿Qué quiere decir con la validación de la URL? Creo que mantendré esta solución y solo controlaré en la parte superior de mi página de destino que el argumento sea válido. ¿Qué piensas? – Bertrand

+1

Por validación solo quiero decir que ui.item.url tiene un valor, es una URL válida, etc., por si acaso de alguna manera se obtienen datos incorrectos. – Chao

Cuestiones relacionadas