HTMLElement: change-Ereignis
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
Das change
-Ereignis wird für <input>
, <select>
und <textarea>
Elemente ausgelöst, wenn der Benutzer den Wert des Elements ändert. Im Gegensatz zum input
-Ereignis wird das change
-Ereignis nicht unbedingt bei jeder Änderung eines value
-Wertes eines Elements ausgelöst.
Je nach Art des geänderten Elements und der Art und Weise, wie der Benutzer mit dem Element interagiert, wird das change
-Ereignis zu unterschiedlichen Zeitpunkten ausgelöst:
- Wenn ein
<input type="checkbox">
Element aktiviert oder deaktiviert wird (durch Klicken oder mit der Tastatur); - Wenn ein
<input type="radio">
Element aktiviert wird (aber nicht beim Deaktivieren); - Wenn der Benutzer die Änderung explizit bestätigt (z.B. durch Auswahl eines Wertes aus einem Dropdown-Menü eines
<select>
Elements mit einem Mausklick, durch Auswahl eines Datums aus einem Datumsauswahlfeld für<input type="date">
, durch Auswahl einer Datei im Datei-Auswahlfenster für<input type="file">
, etc.); - Wenn das Element den Fokus verliert, nachdem sein Wert geändert wurde: für Elemente, bei denen die Interaktion des Benutzers durch Tippen und nicht durch Auswahl erfolgt, wie bei einem
<textarea>
oder dentext
,search
,url
,tel
,email
oderpassword
Typen des<input>
Elements.
Die HTML-Spezifikation listet die <input>
-Typen auf, die das change
-Ereignis auslösen sollten.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener()
oder setzen Sie eine Ereignis-Handler-Eigenschaft.
addEventListener("change", (event) => { })
onchange = (event) => { }
Ereignistyp
Ein generisches Event
.
Beispiele
><select>
-Element
HTML
<label>
Choose an ice cream flavor:
<select class="ice-cream" name="ice-cream">
<option value="">Select One …</option>
<option value="chocolate">Chocolate</option>
<option value="sardine">Sardine</option>
<option value="vanilla">Vanilla</option>
</select>
</label>
<div class="result"></div>
JavaScript
const selectElement = document.querySelector(".ice-cream");
const result = document.querySelector(".result");
selectElement.addEventListener("change", (event) => {
result.textContent = `You like ${event.target.value}`;
});
Ergebnis
Texteingabefeld
Für einige Elemente, einschließlich <input type="text">
, wird das change
-Ereignis erst ausgelöst, wenn das Steuerelement den Fokus verliert. Versuchen Sie, etwas in das untenstehende Feld einzugeben und klicken Sie dann woanders hin, um das Ereignis auszulösen.
HTML
<input placeholder="Enter some text" name="name" />
<p id="log"></p>
JavaScript
const input = document.querySelector("input");
const log = document.getElementById("log");
input.addEventListener("change", updateValue);
function updateValue(e) {
log.textContent = e.target.value;
}
Ergebnis
Spezifikationen
Specification |
---|
HTML> # event-change> |
HTML> # handler-onchange> |
Browser-Kompatibilität
Loading…
Unterschiedliche Browser sind sich nicht immer einig, ob ein change
-Ereignis für bestimmte Arten von Interaktionen ausgelöst werden sollte. Beispielweise wurde das change
-Ereignis bei der Tastaturnavigation in <select>
-Elementen in Gecko früher nie ausgelöst, bis der Benutzer Enter drückte oder den Fokus vom <select>
entfernte (siehe Firefox-Bug 126379). Seit Firefox 63 (Quantum) ist dieses Verhalten jedoch zwischen allen großen Browsern konsistent.