working tab not evento ejemplos ejemplo jquery tabs

tab - on keyup jquery



jQuery: keyup para TAB-key? (3)

Por lo tanto, tengo problemas para ejecutar mi script si se presiona la tecla Tab. Después de buscar en Google rápidamente, el código de la ficha es 9. Además, mientras hablamos, ¿hay alguna forma mejor de verificar si se presiona una tecla sin usar códigos de caracteres? Pregunto porque sigo recibiendo la siguiente Advertencia por firebug cuando uso el código de caracteres:

La propiedad ''charCode'' de un evento de teclado no se debe usar. El valor no tiene sentido

De todos modos, todavía funciona, así que ese no es el problema. Este es el código que uso:

$(''/* my inputs */'').keyup(function(e) { console.log(''keyup called''); var code = e.keyCode || e.which; if (code == ''9'') { console.log(''Tab pressed''); } });

Usando el código anterior, la consola se deja en blanco, no se agrega nada (usando Firebug). Por supuesto, intenté hacer cosas en lugar de registrar el texto, pero no se ejecuta nada. Entonces, ¿alguien puede ver por qué esto no está funcionando? ¿Hay una mejor manera de verificar si se presiona una tecla?

Gracias por adelantado.


Mi corazonada es que cuando presiona la tecla tab, la entrada de su formulario pierde el foco, antes de que ocurra la programación. Intenta cambiar el enlace al cuerpo, así:

$(''body'').keyup(function(e) { console.log(''keyup called''); var code = e.keyCode || e.which; if (code == ''9'') { alert(''Tab pressed''); } });

Entonces, si eso funciona (lo hago para mí) intente cambiar el enlace a keyDown, en su lugar, y devuelva falso. De esa forma puedes implementar tu propio comportamiento personalizado.

$(''.yourSelector'').keydown(function(e) { console.log(''keyup called''); var code = e.keyCode || e.which; if (code == ''9'') { alert(''Tab pressed''); return false; } });

Uno de estos dos debería funcionar ... si es un cuerpo, podría adjuntar un manipulador de teclas en el cuerpo, luego, si es una pestaña, buscar el campo con el foco (creo que hay una función .hasFocus ()?), Y si es la que querer, continuar y devolver falso. De lo contrario, deje que el navegador haga su trabajo.

Si desea actualizar el campo CON un carácter de tabulación, intente esto en su devolución de llamada:

var theVal = $(this).val(); theVal = theVal + '' ''; $(this).val(theVal);

No lo he probado, pero debería funcionar. También puede agregar 3 o 4 espacios en lugar del carácter de tabulación, si le causa problemas.


si no ocurre nada, independientemente de la tecla que presione, ¿hay algún problema con el selector que está utilizando? ¿Puedes verificar que estás seleccionando correctamente, quizás con algo como:

console.log($(''/* my inputs */'').length);


e = e || window.event; if(e.keyCode == 9) alert("Tab pressed");

Prueba esto