Сначала должны быть запущены обработчики ввода, а затем событие должно всплыть в иерархии DOM, если оно всплывет.Из спецификации DOM Events :
Событие отправляется его целевой EventTarget, и все найденные там прослушиватели событий срабатывают.Затем всплывающие события будут запускать любые дополнительные прослушиватели событий, найденные путем следования родительской цепочки EventTarget вверх
[...]
. Любой обработчик событий может решить предотвратить дальнейшее распространение события, вызвав метод stopPropagation
Event
.интерфейс.Если какой-либо EventListener
вызывает этот метод, все дополнительные EventListeners
на текущем EventTarget
будут запущены, но пузыри на этом уровне прекратятся.Для предотвращения дальнейшего всплытия требуется только один вызов stopPropagation
.
Второй абзац относится к stopPropagation
и говорит, что если слушатель на input
вызывает e.stopPropagation()
, то событиене должен вставать до <form>
.Однако все оставшиеся слушатели на <input>
увидят событие изменения, stopPropagation
просто не даст событию всплыть вверх по дереву дальше уровня, на котором вызывается stopPropagation
.
Кроме того, событие изменения выдает :
изменение
Событие изменения происходит, когда элемент управления теряет фокус ввода и его значениебыл изменен с момента получения фокуса.Это событие действительно для INPUT, SELECT и TEXTAREA.элемент.