Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Element: keyup-Ereignis

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.

Das keyup-Ereignis wird ausgelöst, wenn eine Taste losgelassen wird.

Die Ereignisse keydown und keyup liefern einen Code, der angibt, welche Taste gedrückt wurde, während keypress angibt, welches Zeichen eingegeben wurde. Beispielsweise wird ein kleines „a“ von keydown und keyup als 65 gemeldet, von keypress dagegen als 97. Ein großes „A“ wird von allen Ereignissen als 65 gemeldet.

Das Ereignisziel eines Tastaturereignisses ist das aktuell fokussierte Element, das die Tastatureingabe verarbeitet. Dazu gehören <input>, <textarea>, alle Elemente, die contentEditable sind, sowie alle anderen Elemente, mit denen über die Tastatur interagiert werden kann, etwa <a>, <button> und <summary>. Wenn kein geeignetes Element fokussiert ist, ist <body> oder das Wurzelelement das Ereignisziel. Das Ereignis wird weitergereicht und kann Document und Window erreichen.

Das Ereignisziel kann sich zwischen verschiedenen Tastaturereignissen ändern. Beispielsweise unterscheidet sich beim Drücken der Tab-Taste das Ziel von keydown vom Ziel von keyup, weil sich der Fokus geändert hat.

Da das Ereignis nach dem Loslassen der Taste ausgelöst wird, geben die Eigenschaften für Modifikatortasten (ctrlKey, altKey, shiftKey und metaKey) den Zustand nach dem Loslassen wieder. Beispielsweise ist ctrlKey beim keyup-Ereignis der Control-Taste selbst false. Wird eine andere Taste losgelassen, während die Control-Taste weiterhin gedrückt ist, ist ctrlKey beim keyup-Ereignis dieser anderen Taste true.

Syntax

Verwenden Sie den Ereignisnamen in addEventListener():

js
addEventListener("keyup", (event) => { })

Alternativ können Sie ihn der Event-Handler-Eigenschaft der Schnittstelle zuweisen:

js
onkeyup = (event) => { }

Ereignistyp

Ein KeyboardEvent. Erbt von UIEvent und Event.

Event UIEvent KeyboardEvent

Beispiele

Beispiel für keyup mit addEventListener

Dieses Beispiel protokolliert den Wert von KeyboardEvent.code, sobald Sie eine Taste innerhalb des <input>-Elements loslassen.

html
<input placeholder="Click here, then press and release a key." size="40" />
<p id="log"></p>
js
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 Ereignisse keydown und keyup auch während der Eingabe mit einem Eingabemethoden-Editor ausgelöst, um die browserübergreifende Kompatibilität für CJKT-Benutzer zu verbessern (Firefox-Bug 354358). Um alle keyup-Ereignisse zu ignorieren, die Teil dieser Eingabe sind, können Sie beispielsweise Folgendes tun:

js
eventTarget.addEventListener("keyup", (event) => {
  if (event.isComposing) {
    return;
  }
  // do something
});

Hinweis: Anders als keydown haben keyup-Ereignisse keine besonderen keyCode-Werte für IME-Ereignisse. Wie bei keydown kann compositionstart jedoch nach keyup ausgelöst werden, wenn das erste Zeichen eingegeben wird, das den IME öffnet. Ebenso kann compositionend vor keyup ausgelöst werden, wenn das letzte Zeichen eingegeben wird, das den IME schließt. In diesen Fällen ist isComposing false, obwohl das Ereignis Teil der Eingabe mit dem IME ist.

Spezifikationen

Spezifikation
UI Events
# event-type-keyup
HTML
# handler-onkeyup

Browser-Kompatibilität

Siehe auch