Lalchand
¿Cómo se captura el evento de pulsación de tecla o de pulsación de tecla en un elemento DIV (usando jQuery)?
¿Qué se requiere para darle el foco al elemento DIV?
hola
(1) Establecer el tabindex
atributo:
<div id="mydiv" tabindex="0" />
(2) Vincular a keydown:
$('#mydiv').on('keydown', function(event) {
//console.log(event.keyCode);
switch(event.keyCode){
//....your actions for the keys .....
}
});
Para establecer el enfoque en el inicio:
$(function() {
$('#mydiv').focus();
});
Para quitar – si no te gusta – el div
borde de enfoque, establecer outline: none
en el CSS.
Ver la tabla de códigos clave para más keyCode
posibilidades.
Todo el código asumiendo que usas jQuery.
#
-
+1 tabindex es el punto clave aquí para hacer que el div sea ‘seleccionable’. JQuery no es necesario, lo mismo funciona con Angular y (supongo) con eventos simples de JavaScript.
– Jukka Dahlbom
12 de febrero de 2014 a las 10:57
-
¿Cuál es el soporte del navegador para esto?
– conocida asilya
19 de noviembre de 2014 a las 20:06
-
tabindex es una parte clave, pero no lo establezca en ningún valor que no sea “0”. Hacer que sea algo por encima de 0 va a estropear los lectores de pantalla para los usuarios con discapacidades visuales (se saltará todo en la página e irá directamente a cualquier tabindex por encima de 0). tabindex=”0″ lo hace “tabable”. puedes tener infinitos elementos con tabindex=”0″
– zonabi
29 de febrero de 2016 a las 18:26
-
¡También funciona con
!
– dfmiller15/03/2016 a las 15:45 -
¡Excelente! Me faltaba el atributo tabindex, tal vez porque los DIV no pueden recibir el foco a menos que tengan un tabindex. ¡Gracias hombre! ¡Salvó mi vida! EDITAR: también funciona con React– Vinícius Negrão16 de febrero de 2017 a las 19:31

Илья Зеленько
Aquí ejemplo en JS simple:
document.querySelector('#myDiv').addEventListener('keyup', function (e) {
console.log(e.key)
})
#myDiv {
outline: none;
}
<div
id="myDiv"
tabindex="0"
>
Press me and start typing
</div>
-
usaría un
tabindex="-1"
ya que "Los eventos de teclado solo son generados por, – Ludovic Kuti
18 de agosto de 2022 a las 6:42
nkshio
tabindex El atributo HTML indica si se puede enfocar su elemento y si/dónde participa en la navegación secuencial del teclado (generalmente con el Tab
llave). Leer Documentos web de MDN para referencia completa.
Usando Jquery
$( "#division" ).keydown(function(evt) {
evt = evt || window.event;
console.log("keydown: " + evt.keyCode);
});
#division {
width: 90px;
height: 30px;
background: lightgrey;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="division" tabindex="0"></div>
Usando JavaScript
var el = document.getElementById("division");
el.onkeydown = function(evt) {
evt = evt || window.event;
console.log("keydown: " + evt.keyCode);
};
#division {
width: 90px;
height: 30px;
background: lightgrey;
}
<div id="division" tabindex="0"></div>
-
De hecho, encontré esto buscando un problema con el disparo del evento de enfoque cuando los controles en el div perdieron el foco, digamos que haga clic en la barra de desplazamiento de divs, simplemente agregar el tabulador al div fue la solución, así que muchas gracias
– MikeT
22 de noviembre de 2018 a las 14:29
¿Qué significa “enfoque” para un div?
– Jonathan Fausto
30 de junio de 2010 a las 12:57
jboyd además de tabular cuando tiene un tabindex, puede usar javascript para encontrarlo y llamar al método de enfoque en él.
–Brendan Enrick
30 de junio de 2010 a las 12:57
@Lalchand … ¿puedes aceptar mi respuesta en algún momento? 🙂
– hola
3 oct 2016 a las 13:41