Kann mir jemand sagen, was der Unterschied zwischen den change
und input
Ereignissen ist?
Ich benutze jQuery, um sie hinzuzufügen:
$('input[type="text"]').on('change', function() {
alert($(this).val());
})
Es funktioniert auch mit input
statt change
.
Vielleicht ein Unterschied in der Reihenfolge der Ereignisse in Bezug auf den Fokus?
javascript
jquery
events
dom
Gabriel Petrovay
quelle
quelle
input
Ereignis erfasst auch das Einfügen. Siehe stackoverflow.com/questions/15727324/…Antworten:
Nach diesem Beitrag :
oninput
Ereignis tritt auf, wenn der Textinhalt eines Elements über die Benutzeroberfläche geändert wird.onchange
tritt auf, wenn sich die Auswahl, der geprüfte Zustand oder der Inhalt eines Elements geändert haben . In einigen Fällen tritt dies nur auf, wenn das Element den Fokus verliert oder wenn Sie die returnEingabetaste drücken und der Wert geändert wurde. Das onchange Attribut kann mit verwendet werden:<input>
,<select>
, und<textarea>
.TL; DR:
oninput
: Änderungen am Textinhaltonchange
::<input />
: Ändern + Fokus verlieren<select>
: Änderungsoption handeltquelle
onchange
auf, "wenn das Element den Fokus verliert", während dasoninput
bei jeder Textänderung auftritt.onchange
wird auch ausgelöst, wenn Sie die Eingabetaste drücken, während Sie noch fokussieren.Das
change
event
wird in den meisten Browsern ausgelöst, wenn der Inhalt geändert wird und das Element verliertfocus
. Es ist im Grunde eine Ansammlung von Änderungen. Es wird nicht wie im Fall bei jeder einzelnen Änderung ausgelöstinput
event
.Das
input
event
wird synchron ausgelöst, wenn der Inhalt des Elements geändert wird. Daher neigt der Ereignis-Listener dazu, häufiger zu feuern.Verschiedene Browser sind sich nicht immer einig, ob für bestimmte Interaktionstypen ein Änderungsereignis ausgelöst werden soll
quelle
input
Ereignis.Die MDN-Dokumentation enthält eine klare Erklärung (nicht sicher, wann sie hinzugefügt wurde):
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event
quelle