Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

392
Views
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 answers
Answer question

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 Report

0

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

Prueba esto

over 4 years ago · Santiago Trujillo Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!