Element: keyup Ereignis
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 eingetippt wurde. Zum Beispiel wird ein kleines "a" in keydown
und keyup
als 65 gemeldet, aber als 97 in keypress
. Ein großes "A" wird in allen Ereignissen als 65 gemeldet.
Das Ereignisziel eines Tastaturereignisses ist das derzeit fokussierte Element, das die Tastaturaktivität verarbeitet. Dazu gehören: <input>
, <textarea>
, alles, das contentEditable
ist, und alles andere, das mit der Tastatur interagierbar ist, wie <a>
, <button>
, und <summary>
. Wenn kein geeignetes Element im Fokus ist, wird das Ereignisziel das <body>
oder der Root. Wenn es nicht abgefangen wird, blubbert das Ereignis den DOM-Baum hinauf bis es Document
erreicht.
Das Ereignisziel kann zwischen verschiedenen Tastaturereignissen wechseln. Zum Beispiel wäre das keydown
Ziel beim Drücken der Tab-Taste ein anderes als das keyup
Ziel, da sich der Fokus geändert hat.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener()
oder setzen Sie eine Ereignis-Handler-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
Nur lesbar-
Gibt einen booleschen Wert zurück, der
true
ist, wenn die Alt (Option oder ⌥ auf macOS) Taste aktiv war, als das Tastaturereignis generiert wurde. KeyboardEvent.code
Nur lesbar-
Gibt eine Zeichenkette mit dem Codewert der physischen Taste zurück, die durch das Ereignis dargestellt wird.
Warnung: Dies ignoriert das Tastaturlayout des Benutzers, so dass, wenn der Benutzer die Taste an der "Y"-Position in einem QWERTY-Tastaturlayout drückt (nahe der Mitte der Reihe über der Basisreihe), dies immer "KeyY" zurückgibt, auch wenn der Benutzer eine QWERTZ-Tastatur hat (was bedeuten würde, dass der Benutzer ein "Z" erwartet, und alle anderen Eigenschaften würden ein "Z" anzeigen) oder ein Dvorak-Tastaturlayout (wo der Benutzer ein "F" erwarten würde). Wenn Sie dem Benutzer die korrekten Tastenanschläge anzeigen möchten, können Sie
Keyboard.getLayoutMap()
verwenden. KeyboardEvent.ctrlKey
Nur lesbar-
Gibt einen booleschen Wert zurück, der
true
ist, wenn die Ctrl-Taste aktiv war, als das Tastaturereignis generiert wurde. KeyboardEvent.isComposing
Nur lesbar-
Gibt einen booleschen Wert zurück, der
true
ist, wenn das Ereignis zwischencompositionstart
undcompositionend
ausgelöst wird. KeyboardEvent.key
Nur lesbar-
Gibt eine Zeichenkette zurück, die den Tastenwert der durch das Ereignis dargestellten Taste repräsentiert.
KeyboardEvent.location
Nur lesbar-
Gibt eine Zahl zurück, die den Ort der Taste auf der Tastatur oder einem anderen Eingabegerät darstellt. Eine Liste der Konstanten, die die Orte identifizieren, finden Sie unter Tastaturpositionen.
KeyboardEvent.metaKey
Nur lesbar-
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 Tastaturereignis generiert wurde. KeyboardEvent.repeat
Nur lesbar-
Gibt einen booleschen Wert zurück, der
true
ist, wenn die Taste so gehalten wird, dass sie automatisch wiederholt wird. KeyboardEvent.shiftKey
Nur lesbar-
Gibt einen booleschen Wert zurück, der
true
ist, wenn die Shift-Taste aktiv war, als das Tastaturereignis generiert wurde.
Beispiele
addEventListener keyup Beispiel
Dieses Beispiel protokolliert den KeyboardEvent.code
Wert, wenn Sie eine Taste innerhalb des <input>
Elements 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 IME Komposition ausgelöst, um die Browser-Kompatibilität für CJKT-Benutzer zu verbessern (Firefox-Bug 354358). Um alle keyup
Ereignisse, die Teil der Komposition sind, zu ignorieren, tun Sie etwas wie folgt:
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
, compositionstart
nach keyup
ausgelöst werden, wenn das erste Zeichen, das den IME öffnet, eingetippt wird, und compositionend
kann vor keyup
ausgelöst werden, wenn das letzte Zeichen, das den IME schließt, eingetippt wird. In diesen Fällen ist isComposing
falsch, auch wenn das Ereignis Teil der Komposition ist.
Spezifikationen
Specification |
---|
UI Events # event-type-keyup |
HTML Standard # handler-onkeyup |
Browser-Kompatibilität
BCD tables only load in the browser