primera pregunta (y afortunadamente, pero dudoso la única)jQuery UI Comportamiento de autocompletado. ¿Cómo buscar texto gratis en Entrar?
Estoy usando el autocompletado de la jQuery UI. Aquí hay un código de muestra para replicar mi problema.
var suggestions = ["C", "Clojure", "JavaScript", "Perl", "PHP"];
$("#autocomplete").autocomplete({
source: suggestions
});
Cuando un usuario escribe 'J' que se presentará con 'Clojure' y 'JavaScript' como sugerencias.
He omitido Java de esta lista, si el usuario desea buscar Java, escribe 'Java', presione la tecla enter, pero el formulario no se envía. Si agrega un espacio, la sugerencia de "JavaScript" desaparece y el formulario se puede enviar presionando la tecla Intro.
Estoy creando una búsqueda gratuita, quiero que los usuarios puedan buscar presionando enter, incluso si hay sugerencias disponibles.
$("#autocomplete").keypress(function(event) {
alert(event.keyCode);
if (event.keyCode=='13') $this.closest('form').submit();
});
He probado el pensamiento anterior pude detectar manualmente al pulsar una tecla enviar y enviar el formulario, pero la alerta muestra todas las claves se detectan SALVO presentar lo que parece ser suprimida por el autocompletar.
¡Cualquier ayuda es muy apreciada! Gracias.
Hola, le agradezco que se tome la molestia de responder. – John
Vaya, parece que Stack Overflow tiene el problema opuesto y ¡ingrese mi respuesta en lugar de la nueva línea que esperaba! Este código no resuelve el problema, por alguna razón, la tecla Intro, el código '13' simplemente no se reconoce con la pulsación de tecla. Es como si hubiera sido desactivado intencionalmente, ¡simplemente no puedo encontrar la manera de habilitarlo! Si crea un div con id = 'clave' y agrega lo siguiente dentro de la función de pulsación de tecla: $ ('# key'). Text ('Key:' + e.keyCode); y escriba, verá lo que quiero decir!Solo recibirá '13' si no hay sugerencias. ¿Alguna idea de cómo forzarlo a enviar al ingresar? ¡Gracias! – John
Gracias por la actualización ... aún no funcionó en mi extremo (utilicé Chrome, ¿su navegador podría manejarlo de manera diferente?) Pero también he logrado que funcione aquí. Mirando el código de autocompletar que tenía un aprieto keydown donde en entrar tecla pulsada: si (self.menu.element.is ("Visible")) {event.preventDefault(); } Esto es lo que detuvo el envío de formularios al ingresar (¡el comportamiento predeterminado que he intentado restaurar!). Con esto en mente, todo lo que tenemos que hacer es reemplazar la pulsación de tecla con la tecla y nuestro código funciona en los navegadores que he probado. ¡Gracias por su ayuda! – John