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. Ein kleines "a" wird beispielsweise als 65 von keydown
und keyup
gemeldet, aber als 97 von keypress
. Ein großes "A" wird von allen Ereignissen als 65 gemeldet.
Das Ereignisziel eines Tastenereignisses ist das derzeit fokussierte Element, das die Tastaturaktivität verarbeitet. Dazu gehören: <input>
, <textarea>
, alles, was contentEditable
ist, und alles andere, das mit der Tastatur interagieren kann, wie <a>
, <button>
, und <summary>
. Falls kein geeignetes Element im Fokus ist, wird das Ereignisziel der <body>
oder die Wurzel sein. Das Ereignis bubbelt. Es kann Document
und Window
erreichen.
Das Ereignisziel kann sich zwischen verschiedenen Tastenereignissen ändern. Zum Beispiel 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
Dieses Interface erbt auch Eigenschaften seiner Eltern, UIEvent
und Event
.
KeyboardEvent.altKey
Schreibgeschützt-
Gibt einen booleschen Wert zurück, der
true
ist, wenn die Alt (Option oder ⌥ auf macOS) Taste aktiv war, als das Tastenereignis erzeugt wurde. KeyboardEvent.code
Schreibgeschützt-
Gibt einen String mit dem Codewert der physischen Taste zurück, die durch das Ereignis repräsentiert wird.
Warnung: Dies ignoriert das Tastaturlayout des Benutzers, sodass, wenn der Benutzer die Taste in der "Y"-Position auf einem QWERTY-Tastaturlayout drückt (nahe der Mitte der Reihe über der Grundreihe), dies immer "KeyY" zurückgibt, selbst wenn der Benutzer eine QWERTZ-Tastatur hat (was bedeuten würde, dass der Benutzer ein "Z" erwartet, und alle anderen Eigenschaften ein "Z" anzeigen würden) oder ein Dvorak-Tastaturlayout hat (wo der Benutzer ein "F" erwarten würde). Wenn Sie die korrekten Tastenanschläge dem 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 erzeugt 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 durch das Ereignis repräsentierten Taste darstellt.
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 unter 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 erzeugt wurde. KeyboardEvent.repeat
Schreibgeschützt-
Gibt einen booleschen Wert zurück, der
true
ist, wenn die Taste so gehalten wird, dass sie sich automatisch wiederholt. KeyboardEvent.shiftKey
Schreibgeschützt-
Gibt einen booleschen Wert zurück, der
true
ist, wenn die Shift-Taste aktiv war, als das Tastenereignis erzeugt wurde.
Beispiele
Beispiel für addEventListener und keyup
Dieses Beispiel protokolliert den KeyboardEvent.code
Wert, wann immer 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 während der Editor für Eingabemethoden Zusammensetzung ausgelöst, um die Browser-Kompatibilität für CJKT-Benutzer zu verbessern (Firefox Bug 354358). Um alle keyup
Ereignisse zu ignorieren, die Teil der Zusammensetzung sind, 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
, compositionstart
nach keyup
ausgelöst werden, wenn das erste Zeichen, das das IME öffnet, eingetippt wird, und compositionend
kann vor keyup
ausgelöst werden, wenn das letzte Zeichen, das das IME schließt, eingetippt wird. In diesen Fällen ist isComposing
false, selbst wenn das Ereignis Teil der Zusammensetzung ist.
Spezifikationen
Specification |
---|
UI Events # event-type-keyup |
HTML # handler-onkeyup |