javascript - disable - tabs jquery ejemplos
JavaScript no puede capturar la combinaciĆ³n "SHIFT+TAB" (3)
Por la razón que sea, no puedo capturar la combinación "SHIFT + TAB". Estoy usando la última jQuery.
Mismo resultado si uso otros ajax / javascript, etc.
Aquí hay un ejemplo simple que debería funcionar como lo entiendo actualmente ...
event.which o event.KeyCode son siempre "indefinidos", solo shiftKey existe en un escenario que involucra un "MAYÚS + TAB" o un desplazamiento del teclado hacia atrás, tradicionalmente inherente a las aplicaciones / web basadas en Windows o de otro modo ...
function ShiftTab()
{
debugger;
if(event.KeyCode == 9 && event.shiftKey) // neither this line nor the following work
// if (event.which == 9 && event.shiftKey) // shift + tab, traverse backwards, using keyboard
{
return true;
}
else
{
return false;
}
}
Este parece ser otro elemento relacionado con el orden de pestañas que ya no funciona como tradicionalmente funcionaba en las aplicaciones basadas en Microsoft.Net WinForm / WebForm.
Creé una función que conecté al evento onkeydown de mi botón. Utilicé onkeydown, porque onkeypress no capturaría mi tecla de tabulación presionando
function ShiftTab(evt) {
var e = event || evt; // for trans-browser compatibility
var charCode = e.which || e.keyCode; // for trans-browser compatibility
if (charCode === 9) {
if (e.shiftKey) {
$(''#controlName'').focus();
return false;
} else {
return true;
}
}
Tomé este enfoque para hacer frente a dos problemas específicos:
- onkeypress no capturaría la tecla de tabulación presionando
- Cuando haga clic en la pestaña Mayús, la tecla Mayús presionará la función, por lo que anidé la verificación del modificador de la tecla Mayús
Si está utilizando jQuery, debería ser así como funciona el código. Asegúrese de que keyCode
esté en minúscula. Además, jQuery normaliza keyCode
en el which
:
$(document).keyup(function (e) {
if (e.which === 9 && e.shiftKey) {
ShiftTab();
}
});
Si estás en terse JavaScript:
$(document).keyup(function (e) {
e.which === 9 && e.shiftKey && ShiftTab();
});
jQuery 1.7+ on
sintaxis:
$(document).on(''keyup'', function (e) {
e.which === 9 && e.shiftKey && ShiftTab();
});
Usa el mismo código dentro del evento de pulsación de tecla. La pestaña cambia el elemento entre la pulsación de tecla y la pulsación de tecla. Aquí obtenemos event.key = tab y event.shiftKey = true.