Вебсправочник
Основы веб-разработки

Input и change: изменение значения и его подтверждение

Input и change сообщают о разных этапах взаимодействия с полем. Для текстового ввода input обычно приходит по мере редактирования, а change — при подтверждении изменения, например после ухода из поля.

Назначение

Input и change сообщают о разных этапах взаимодействия с полем. Для текстового ввода input обычно приходит по мере редактирования, а change — при подтверждении изменения, например после ухода из поля.

Как это работает

В собственном документе создайте input id event-text с подписью. Подключите код после разметки и наблюдайте порядок сообщений. Для select и checkbox моменты change отличаются от текстового поля.

Пример

const field = document.querySelector("#event-text");
field.addEventListener("input", () => console.log("input:", field.value));
field.addEventListener("change", () => console.log("change:", field.value));

Что должно получиться

Во время набора появляются сообщения input, а после завершения редактирования — change, если значение действительно изменилось. Точный сценарий зависит от типа элемента и способа ввода.

Граница применения и частая ошибка

Присваивание field.value кодом не вызывает эти события автоматически. Не отправляйте сетевой запрос на каждый символ без оценки нагрузки. Для составного ввода через IME учитывайте композицию и не принимайте промежуточный текст за окончательное значение.

Самостоятельная проверка

Сравните набор, вставку из буфера, отмену редактирования и уход клавишей Tab. Затем повторите опыт с select. Запишите, какое событие подходит предварительному просмотру, а какое — сохранению подтверждённого выбора.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.