El evento keydown ocurre cuando se presiona la tecla, seguido inmediatamente por el evento de presionar la tecla. Luego, el evento keyup se genera cuando se libera la clave.
Para comprender la diferencia entre presionar tecla y presionar tecla , es útil distinguir entre caracteres y teclas . Una tecla es un botón físico en el teclado de la computadora. Un personaje es un símbolo escrito presionando un botón. En un teclado estadounidense, 4presionar la tecla mientras se mantiene presionada la Shifttecla normalmente produce un carácter de "signo de dólar". Este no es necesariamente el caso en todos los teclados del mundo. En teoría, los eventos keydown y keyup representan teclas presionadas o liberadas, mientras que la tecla presionadaEl evento representa un carácter que se está escribiendo. En la práctica, esta no siempre es la forma en que se implementa.
Durante un tiempo, algunos navegadores activaron un evento adicional, llamado textInput , inmediatamente después de presionar una tecla . Las primeras versiones del estándar DOM 3 pretendían esto como un reemplazo para el evento de pulsación de tecla , pero la noción completa fue revocada más tarde. Webkit admitió esto entre las versiones 525 y 533, y me dijeron que IE lo admitió , pero nunca lo detecté, posiblemente porque Webkit requirió que se llamara textInput mientras que IE lo llamó textinput .
También hay un evento llamado input , compatible con todos los navegadores, que se activa justo después de realizar un cambio en un área de texto o campo de entrada. Por lo general, la pulsación de tecla se activará, luego el carácter escrito aparecerá en el área de texto, luego se activará la entrada. El evento de entrada en realidad no brinda ninguna información sobre qué tecla se ingresó; tendría que inspeccionar el cuadro de texto para averiguar qué cambió, por lo que realmente no lo consideramos un evento clave y realmente no lo documentamos aquí . Aunque originalmente se definió solo para áreas de texto y cuadros de entrada, creo que también hay algún movimiento hacia la generalización para disparar a otros tipos de objetos.