На самом деле довольно легко изменить стили ошибок, которые отображаются в разных браузерах при проверке формы. Вот ваш друг Ограничительный API .
Существует событие invalid
, которое будет запущено перед отправкой формы, которое проверяет, удовлетворяют или нет элементы, имеющие атрибут required
, свои ограничения.
Обычно я использую обработчик событий onInvalid
и передаю обратный вызов, где вы можете получить много информации о проверке.
Например, в event.target.validationMessage
вы увидите «Пожалуйста, заполните это поле» или event.target.validity.valid
сообщит вам, является ли элемент действительным или нет. Имейте в виду, что вы должны preventDefault
event
.
e.preventDefault();
setInvalid( e.target.validity.valid );
setMessage( e.target.validationMessage );
Вот как я стилизовал собственные ошибки HTML, используя компонент <SnackbarContent />
из material-ui
.
Также просто отметим, что в CSS есть пара псевдоэлементов, которые помогут вам стилизовать ввод. :invalid
и :valid
, но это не имеет ничего общего с самим сообщением.
Поскольку это несоответствие стилей действительно беспокоило меня некоторое время назад, я создал npm
плагин, который решает эту проблему для вас, pretty-form-error , он работает с React и, по крайней мере, Angular 1.xx