Element: evento keyup
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
El evento keyup
se activa cuando se suelta una tecla.
Los eventos keydown
y keyup
brindan un código que indica qué tecla se presiona, mientras que keypress
indica qué carácter se ingresó. Por ejemplo, una "a" minúscula será reportada como 65 por keydown
y keyup
, pero como 97 por keypress
. Todos los eventos notifican una "A" mayúscula como 65.
Los eventos de teclado solo son generados por <input>
, <textarea>
, <summary>
y cualquier cosa con el atributo contentEditable
o tabindex
.
Desde Firefox 65, los eventos keyup
y keydown
ahora se activan durante la composición del IME, para mejorar la compatibilidad entre navegadores para los usuarios de CJKT (error 354358, en Firefox. Para ignorar todos los eventos keyup
que forman parte de la composición, haga algo como esto (229 es un valor especial establecido para un keyCode
relacionado con un evento que ha sido procesado por un editor de método de entrada (IME)):
eventTarget.addEventListener("keyup", (event) => {
if (event.isComposing || event.keyCode === 229) {
return;
}
// hacer algo
});
Sintaxis
Utilice el nombre del evento en métodos como addEventListener()
, o establezca una propiedad de manejador de eventos.
addEventListener("keyup", (event) => {});
onkeyup = (event) => {};
Tipo de evento
KeyboardEvent
. Hereda de Event
.
Propiedades del evento
Esta interfaz también hereda propiedades de sus padres, UIEvent
y Event
.
KeyboardEvent.altKey
Read only-
Devuelve un valor booleano que es
true
si la tecla Alt (Option o ⌥ en macOS) estaba activa cuando se generó el evento. KeyboardEvent.code
Read only-
Devuelve una cadena con el valor del código de la clave física representada por el evento.
Advertencia: Esto ignora el diseño del teclado del usuario, de modo que si el usuario presiona la tecla en la posición "Y" en un diseño de teclado QWERTY (cerca del medio de la fila sobre la fila de inicio), esto siempre devolverá "KeyY", incluso si el el usuario tiene un teclado QWERTZ (lo que significaría que el usuario espera una "Z" y todas las demás propiedades indicarían una "Z") o un diseño de teclado Dvorak (donde el usuario esperaría una "F"). Si desea mostrar las pulsaciones de teclas correctas al usuario, puede usar
Keyboard.getLayoutMap()
. KeyboardEvent.ctrlKey
Read only-
Devuelve un valor booleano que es
true
si la tecla Ctrl estaba activa cuando se generó el evento. KeyboardEvent.isComposing
Read only-
Devuelve un valor booleano que es
true
si el evento se activa después decompositionstart
y antes decompositionend
. KeyboardEvent.key
Read only-
Devuelve una cadena que representa el valor clave de la tecla representada por el evento.
KeyboardEvent.locale
Read only-
Devuelve una cadena que representa una cadena de configuración regional que indica la configuración regional para la que está configurado el teclado. Esta puede ser la cadena vacía si el navegador o el dispositivo no conocen la configuración regional del teclado.
Nota: Esto no describe la configuración regional de los datos que se ingresan. Un usuario puede estar usando un diseño de teclado mientras escribe texto en un idioma diferente.
KeyboardEvent.location
Read only-
Devuelve un número que representa la ubicación de la tecla en el teclado u otro dispositivo de entrada. Una lista de las constantes que identifican las ubicaciones se muestra en Ubicaciones del teclado.
KeyboardEvent.metaKey
Read only-
Devuelve un valor booleano que es
true
si la tecla Meta (en teclados Mac, la tecla ⌘ Command; en teclados Windows, la tecla Windows (⊞)) estaba activo cuando se generó el evento. KeyboardEvent.repeat
Read only-
Devuelve un valor booleano que es
true
si la tecla se mantiene presionada de manera que se repite automáticamente. KeyboardEvent.shiftKey
Read only-
Devuelve un valor booleano que es
true
si la tecla Shift estaba activa cuando se generó el evento.
Ejemplos
Ejemplo de keyup con addEventListener
Este ejemplo registra el valor KeyboardEvent.code
cada vez que suelta una tecla dentro del elemento <input>
.
<input
placeholder="Haga clic aquí, luego presione y suelte una tecla."
size="40" />
<p id="log"></p>
const input = document.querySelector("input");
const log = document.getElementById("log");
input.addEventListener("keyup", logKey);
function logKey(e) {
log.textContent += ` ${e.code}`;
}
Equivalente onkeyup
input.onkeyup = logKey;
Especificaciones
Specification |
---|
UI Events # event-type-keyup |
HTML Standard # handler-onkeyup |
Compatibilidad con navegadores
BCD tables only load in the browser