Вебсправочник
Ваш первый сайт

Урок: проверить состояния required без отправки данных

Проверка обязательного поля включает несколько разных состояний: пустое значение, неверный формат и допустимый ввод. Урок учит смотреть конкретные признаки validity, не угадывая причину по одному цвету рамки.

Назначение

Проверка обязательного поля включает несколько разных состояний: пустое значение, неверный формат и допустимый ввод. Урок учит смотреть конкретные признаки validity, не угадывая причину по одному цвету рамки.

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

В локальном файле создайте input id test-email с type="email" и required. После него подключите пример или выполните код в консоли своей страницы. Данные никуда не отправляются: читается только текущее состояние поля.

Пример

const email = document.querySelector("#test-email");
for (const value of ["", "wrong", "reader@example.com"]) {
  email.value = value;
  console.log({value, missing:email.validity.valueMissing, type:email.validity.typeMismatch, valid:email.validity.valid});
}

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

Пустое значение выявляет valueMissing, строка wrong — несоответствие email-формату, учебный адрес проходит встроенную проверку синтаксиса. Наличие реального почтового ящика при этом не проверяется.

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

Programmatic value не запускает событие input автоматически. Не делайте вывод о работе собственных обработчиков только по этому циклу. Валидность браузера также не подтверждает разрешение пользователя на операцию и не заменяет серверные правила.

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

Повторите те же значения ручным вводом. Уберите required и сравните пустое состояние. Запишите результаты в таблицу и отдельно проверьте своё сообщение об ошибке, если добавляли setCustomValidity.

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