Javascript change / onchange • Event dem Ändern von Eingaben

Javascript change feuert, wenn eine Option aus einem select-Element gewählt wurde, ein Eingabefeld den Fokus verliert und sein Inhalt während der Zeit im Fokus geändert wurde. Das change-Event feuert beim Verlassen von Formularfeldern, wenn input-, select- oder textarea-Elemente geändert wurden und ist perfekt für <select>, <input type="radio"> und <input type="checkbox">.

Javascript onchange – select, input, textarea geändert

Wenn sich ein Eingabefeld geändert hat: change

change ist das Universal-Event für Formulare und feuert beim Ändern von input (type=text), beim Ändern eines select-Felds und beim Ändern von Texten in textarea.

Javascript entdeckt das Ändern von select-Optionen durch ein change-Event.

<select id="sel">
   <option value="Stiefmütterchen">Stiefmütterchen</option>
   <option value="Primeln">Primeln</option>
   <option value="Tulpen">Tulpen</option>
</select>

<script>
let sel = document.getElementById('sel');
sel.addEventListener ("change", function () {
   let show = document.getElementById('show');
   show.innerHTML = this.value;
});
</script>

change für Checkboxen

Wenn das change-Event für das Abfangen von Änderungen in einem input-Feld vom Typ checkbox eingesetzt wird, erkannten Internet Explorer 6/7 erst den zweiten Klick in die Checkbox als Änderung.

Darum sollte früher das Ereignis besser über ein click-Event abgefangen werden. Bis heute spricht nichts dagegen, weiterhin click / onclick als Indikator für Checkboxen zu benutzen. input type="checkbox" erkennt Änderungen auch, wenn der Benutzer die Felder mit der Tastatur (TAB und SPACE) ändert.

change für textarea

Javascript change fängt Änderungen in Textareas und Eingabefeldern ab und meldet die Änderung, sobald das textarea-Element den Fokus verloren hat (der Benutzer außerhalb des Textfeldes klickt)

Text ändern und außerhalb des Textfelds klicken oder Return / Zurück drücken:

var changed = false; 
var textarea = document.getElementById('myText');
textarea.onchange = function() {
   var response = document.getElementById('response');
   response.innerHTML = "Der Text wurde geändert";
   changed = true;
}
textarea.onblur = function() {
   var response = document.getElementById('response');
   if (changed === false) response.innerHTML = "Der Text wurde nicht geändert";
}

Attribute für Javascript change-Events

target
Objekt zu dem das Ereignis ursprünglich gesendet wurde
eventPhase
Phase, in der das Ereignis bearbeitet wird: AT_TARGET, BUBBLING_PHASE, CAPTURING_PHASE
bubbles
true, wenn das Ereignis nach oben steigen kann
cancelable
Nein
timeStamp
Zeit in Millisekunden, zu der das Ereignis eingetreten ist

input-Event vs change-Event

changeinput
Wird erst ausgelöst, wenn die Eingabe abgeschlossen ist (z. B. nach Verlassen des Feldes oder Bestätigung der Auswahl). Löst aus bei <input type="text">, <input type="number">, <input type="range"> und <textarea>
Löst aus bei Änderung eines Dropdown-Menüs (<select>), Änderung einer Checkbox oder eines Radio-Buttons Löst aus bei jeder Tasten-Eingabe (keydown, keypress, keyup)
Ein change-Event tritt erst ein, wenn eine neue Option gewählt wurde. Wird nicht ausgelöst bei Checkboxen, Radio-Buttons oder <select>

Seit HTML5 gibt neben dem klassischen input type="text" auch input type="number". Das Eingabefeld zeigt Pfeile, mit denen die Eingabe heraus- bzw. heruntergezählt werden kann.

Beim Inkrement bzw. Dekrement feuert das input-Event, aber nicht das change-Event.

document.getElementById('mynum').oninput = function (eve) {
    document.getElementById('numres').innerHTML = this.value;
}
Suchen auf mediaevent.de