Может кто - нибудь сказать мне , что разница между change
и input
событиями?
Я использую jQuery для их добавления:
$('input[type="text"]').on('change', function() {
alert($(this).val());
})
Он также работает input
вместо change
.
Может быть какая-то разница в порядке событий относительно фокуса?
javascript
jquery
events
dom
Габриэль Петровай
источник
источник
input
Событие также захватывает наклеивать. См. Stackoverflow.com/questions/15727324/…Ответы:
Согласно этому сообщению :
oninput
Событие происходит, когда текстовое содержимое элемента изменяется через пользовательский интерфейс.onchange
происходит, когда выделение, отмеченное состояние или содержимое элемента изменились . В некоторых случаях это происходит только тогда, когда элемент теряет фокус или при нажатии return(Enter), и значение было изменено. OnChange атрибут может использоваться с:<input>
,<select>
и<textarea>
.TL; DR:
oninput
: любые изменения, внесенные в текстовое содержимоеonchange
:<input />
: изменить + потерять фокус<select>
: изменить вариантисточник
onchange
происходит «когда элемент теряет фокус», аoninput
происходит при каждом изменении текста.onchange
также срабатывает, когда вы нажимаете Enter, все еще фокусируясь.В
change
event
пожарах в большинстве браузеров , когда содержание меняются , а элемент теряетfocus
. По сути, это совокупность изменений. Он не срабатывает при каждом изменении, как в случаеinput
event
.В
input
event
пожарах синхронно на изменении содержания для элемента. Таким образом, прослушиватель событий имеет тенденцию срабатывать чаще.Различные браузеры не всегда соглашаются, следует ли запускать событие изменения для определенных типов взаимодействия.
источник
input
мероприятие поддерживают текущие версии всех браузеров .В документации MDN есть четкое объяснение (не уверен, когда оно было добавлено):
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event
источник