Кратко
СкопированоСобытие change
срабатывает, когда пользователь изменяет значение в <input>
, <select>
или <textarea>
и фиксирует свои изменения.
Это событие лучше всего использовать при создании форм, когда не требуется постоянно взаимодействовать с каждым изменённым символом в поле ввода. Так же данное событие пригодится и при создании чекбоксов, полей выбора и т. п.
Когда использовать
СкопированоВ текстовых полях (<input>
, <textarea>
), когда нужно получить окончательное значение после завершения ввода.
В выпадающих списках (<select>
), если пользователь выбрал новое значение из дропдауна с доступными опциями.
Чекбоксы и радиокнопки (<input type
, <input type
), когда состояние переключается между «выбрано» и «не выбрано». Например, при отправке формы или при взаимодействии с выбором нескольких значений (чекбоксы или выпадающие списки).
Как пишется
Скопированоconst input = document.querySelector('.input')input.addEventListener('change', function (event) { console.log(event.target.value)})
const input = document.querySelector('.input') input.addEventListener('change', function (event) { console.log(event.target.value) })
В этом примере мы выбираем элемент с классом .input
с помощью document
. Используя метод add
, мы привязываем обработчик события change
к элементу. Этот обработчик будет вызываться, когда событие произойдет. Внутри функции мы можем получить новое значение элемента с помощью event
. Это значение будет отображено в консоли после изменения и подтверждения ввода пользователем.
Пример
Скопировано💡 В зависимости от указанного типа в HTML-элементе, change
срабатывает по-разному. Легче всего это понять на примере.
Отличие от события input
СкопированоХотя оба события могут использоваться для отслеживания изменений в полях ввода, между ними есть важное различие. Событие input
срабатывает на каждое изменение содержимого (при каждом нажатии клавиши). Событие change
срабатывает только тогда, когда ввод завершён, и пользователь покинул элемент ввода или подтвердил выбор.
Как понять
СкопированоПодробнее о механизме событий читай в статье «Событийная модель».
Событие change
похоже на события input
и blur
, но есть важные отличия:
blur
– срабатывает каждый раз при расфокусировке поля.
input
– срабатывает сразу же при изменении значения поля.
change
– срабатывает, когда значение поля изменено, но при условии снятия с него фокуса.