Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

394
Vistas
jQuery: clave para la tecla TAB?

Por lo tanto, tengo algunos problemas para ejecutar mi secuencia de comandos SI se presiona la tecla Tabulador. Después de buscar en Google rápidamente, el código de caracteres para la pestaña es 9. Además, mientras hablamos, ¿hay alguna forma mejor de verificar si se presiona una tecla sin usar códigos de caracteres? Lo pregunto porque sigo recibiendo la siguiente advertencia de Firebug cuando uso el código de caracteres:

No se debe utilizar la propiedad 'charCode' de un evento keyup. 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, he intentado hacer cosas en lugar de registrar texto, pero nada se ejecuta. Entonces, ¿alguien puede ver por qué esto no funciona? ¿Hay una mejor manera de verificar si se presiona una tecla?

Gracias por adelantado.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Mi corazonada es que cuando presiona la tecla de tabulación, la entrada de su formulario pierde el foco, antes de que ocurra la tecla. 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'); } });

Luego, si eso funciona (lo hace para mí), intente cambiar el enlace a keyDown, en su lugar, y devuelva falso. De esa manera, puede implementar su 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 el cuerpo, puede adjuntar un controlador de teclas en el cuerpo, luego, si es una pestaña, busque el campo con foco (¿creo que hay una función .hasFocus()?), y si es el que usted querer, proceder y devolver falso. De lo contrario, deja que el navegador haga lo suyo.

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.

over 4 years ago · Santiago Trujillo Denunciar

0

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

Prueba esto

over 4 years ago · Santiago Trujillo Denunciar

0

si no sucede nada sin importar qué tecla presione, ¿quizás haya algún problema con el selector que está usando? ¿Puede verificar que está seleccionando correctamente, tal vez con algo como:

 console.log($('/* my inputs */').length);
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda