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: blur-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 blur-Ereignis wird ausgelöst, wenn ein Element den Fokus verliert. Das Ereignis wird nicht in der DOM-Hierarchie nach oben weitergegeben; das anschließend ausgelöste, verwandte Ereignis focusout dagegen schon.

Ein Element verliert den Fokus, wenn ein anderes Element ausgewählt wird. Es verliert den Fokus auch, wenn ein Stil angewendet wird, der keinen Fokus zulässt, etwa hidden, oder wenn das Element aus dem Dokument entfernt wird. In beiden Fällen wechselt der Fokus zum body-Element (Viewport). Beachten Sie, dass sich Browser unterschiedlich verhalten, wenn ein fokussiertes Element aus dem Dokument entfernt wird: In Chromium-basierten Browsern löst dies ein blur-Ereignis aus, in Firefox hingegen nicht.

Das Gegenstück zu blur ist das Ereignis focus, das ausgelöst wird, wenn das Element den Fokus erhält.

Das blur-Ereignis kann nicht abgebrochen werden.

Syntax

Verwenden Sie den Ereignisnamen in addEventListener():

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

Alternativ können Sie die Event-Handler-Eigenschaft der Schnittstelle belegen:

js
onblur = (event) => { }

Ereignistyp

Ein FocusEvent. Es erbt von UIEvent und Event.

Event UIEvent FocusEvent

Beispiele

Einfaches Beispiel

HTML

html
<form id="form">
  <label>
    Some text:
    <input type="text" placeholder="text input" />
  </label>
  <label>
    Password:
    <input type="password" placeholder="password" />
  </label>
</form>

JavaScript

js
const password = document.querySelector('input[type="password"]');

password.addEventListener("focus", (event) => {
  event.target.style.background = "pink";
});

password.addEventListener("blur", (event) => {
  event.target.style.background = "";
});

Ergebnis

Ereignisdelegation

Es gibt zwei Möglichkeiten, die Ereignisdelegation für dieses Ereignis umzusetzen: Verwenden Sie das Ereignis focusout oder setzen Sie den Parameter useCapture von addEventListener() auf true.

HTML

html
<form id="form">
  <label>
    Some text:
    <input type="text" placeholder="text input" />
  </label>
  <label>
    Password:
    <input type="password" placeholder="password" />
  </label>
</form>

JavaScript

js
const form = document.getElementById("form");

form.addEventListener(
  "focus",
  (event) => {
    event.target.style.background = "pink";
  },
  true,
);

form.addEventListener(
  "blur",
  (event) => {
    event.target.style.background = "";
  },
  true,
);

Ergebnis

Spezifikationen

Spezifikation
UI Events
# event-type-blur
HTML
# handler-onblur

Browser-Kompatibilität

Der Wert von Document.activeElement unterscheidet sich zwischen Browsern, während dieses Ereignis verarbeitet wird (Firefox-Bug 452307): IE10 setzt ihn auf das Element, zu dem der Fokus wechseln wird, während Firefox und Chrome ihn häufig auf das body-Element des Dokuments setzen.

Siehe auch