Element: keyup-Ereignis
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.
Das keyup
-Ereignis wird ausgelöst, wenn eine Taste losgelassen wird.
Die keydown
- und keyup
-Ereignisse liefern einen Code, der angibt, welche Taste gedrückt wurde, während keypress
angibt, welches Zeichen eingegeben wurde. Zum Beispiel wird ein kleines "a" von keydown
und keyup
als 65 gemeldet, aber als 97 von keypress
. Ein großes "A" wird in allen Ereignissen als 65 gemeldet.
Das Ereignisziel eines Tastenereignisses ist das derzeit fokussierte Element, das die Tastaturaktivität verarbeitet. Dies umfasst: <input>
, <textarea>
, alles, was contentEditable
ist, und alles andere, das über die Tastatur interagiert werden kann, wie z.B. <a>
, <button>
und <summary>
. Wenn kein geeignetes Element im Fokus steht, wird das Ereignisziel der <body>
oder die Wurzel sein. Das Ereignis blubbert hoch. Es kann Document
und Window
erreichen.
Das Ereignisziel kann sich zwischen verschiedenen Tastenereignissen ändern. Beispielsweise wäre das keydown
-Ziel beim Drücken der Tab-Taste anders als das keyup
-Ziel, da sich der Fokus geändert hat.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener()
oder setzen Sie eine Ereignishandler-Eigenschaft.
addEventListener("keyup", (event) => { })
onkeyup = (event) => { }
Ereignistyp
Ein KeyboardEvent
. Erbt von UIEvent
und Event
.
Ereigniseigenschaften
Diese Schnittstelle erbt auch Eigenschaften ihrer Eltern, UIEvent
und Event
.
KeyboardEvent.altKey
Schreibgeschützt-
Gibt einen booleschen Wert zurück, der
true
ist, wenn die Alt-Taste (Option oder ⌥ auf macOS) aktiv war, als das Tastenereignis generiert wurde. KeyboardEvent.code
Schreibgeschützt-
Gibt einen String mit dem Codewert der physischen Taste zurück, die durch das Ereignis dargestellt wird.
Warnung: Dieses ignoriert das Keyboard-Layout des Benutzers, sodass wenn der Benutzer die Taste an der "Y"-Position in einem QWERTY-Keyboard-Layout drückt (nahe der Mitte der Reihe über der Home-Reihe), dies immer "KeyY" zurückgibt, selbst wenn der Benutzer ein QWERTZ-Keyboard hat (was bedeuten würde, dass der Benutzer ein "Z" erwartet und alle anderen Eigenschaften ein "Z" anzeigen würden) oder ein Dvorak-Keyboard-Layout (bei dem der Benutzer ein "F" erwarten würde). Wenn Sie die korrekten Tastenanschläge an den Benutzer anzeigen möchten, können Sie
Keyboard.getLayoutMap()
verwenden. KeyboardEvent.ctrlKey
Schreibgeschützt-
Gibt einen booleschen Wert zurück, der
true
ist, wenn die Ctrl-Taste aktiv war, als das Tastenereignis generiert wurde. KeyboardEvent.isComposing
Schreibgeschützt-
Gibt einen booleschen Wert zurück, der
true
ist, wenn das Ereignis zwischencompositionstart
undcompositionend
ausgelöst wird. KeyboardEvent.key
Schreibgeschützt-
Gibt einen String zurück, der den Tastenwert der Taste darstellt, die durch das Ereignis dargestellt wird.
KeyboardEvent.location
Schreibgeschützt-
Gibt eine Zahl zurück, die die Position der Taste auf der Tastatur oder einem anderen Eingabegerät darstellt. Eine Liste der Konstanten, die die Positionen identifizieren, wird in Tastaturpositionen angezeigt.
KeyboardEvent.metaKey
Schreibgeschützt-
Gibt einen booleschen Wert zurück, der
true
ist, wenn die Meta-Taste (auf Mac-Tastaturen die ⌘ Command-Taste; auf Windows-Tastaturen die Windows-Taste (⊞)) aktiv war, als das Tastenereignis generiert wurde. KeyboardEvent.repeat
Schreibgeschützt-
Gibt einen booleschen Wert zurück, der
true
ist, wenn die Taste gedrückt gehalten wird, sodass sie automatisch wiederholt wird. KeyboardEvent.shiftKey
Schreibgeschützt-
Gibt einen booleschen Wert zurück, der
true
ist, wenn die Shift-Taste aktiv war, als das Tastenereignis generiert wurde.
Beispiele
Beispiel für addEventListener mit keyup
Dieses Beispiel protokolliert den KeyboardEvent.code
-Wert, wann immer Sie eine Taste im <input>
-Element loslassen.
<input placeholder="Click here, then press and release a key." 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}`;
}
Keyup-Ereignisse mit IME
Seit Firefox 65 werden die keydown
- und keyup
-Ereignisse nun während der Komposition im Eingabemethoden-Editor ausgelöst, um die plattformübergreifende Kompatibilität für CJKT-Benutzer zu verbessern (Firefox-Bug 354358). Um alle keyup
-Ereignisse, die Teil der Komposition sind, zu ignorieren, tun Sie Folgendes:
eventTarget.addEventListener("keyup", (event) => {
if (event.isComposing) {
return;
}
// do something
});
Hinweis:
Im Gegensatz zu keydown
haben keyup
-Ereignisse keine speziellen keyCode
-Werte für IME-Ereignisse. Allerdings kann wie bei keydown
das compositionstart
nach keyup
ausgelöst werden, wenn das erste Zeichen, das den IME öffnet, eingegeben wird, und compositionend
kann vor keyup
ausgelöst werden, wenn das letzte Zeichen, das den IME schließt, eingegeben wird. In diesen Fällen ist isComposing
falsch, selbst wenn das Ereignis Teil der Komposition ist.
Spezifikationen
Specification |
---|
UI Events # event-type-keyup |
HTML # handler-onkeyup |