Другая возможная причина, которая не покрывается всеми предыдущими ответами, когда у вас есть обычная форма с обязательными полями, и вы отправляете форму, а затем скрываете ее непосредственно после отправки (с использованием javascript), не оставляя времени для работы функции проверки.
Функциональность проверки будет пытаться сфокусироваться на требуемом поле и показать сообщение об ошибке, но поле уже скрыто, поэтому «Недопустимый элемент управления формы с именем = '' не может быть сфокусирован». появляется!
Редактировать:
Для обработки этого случая просто добавьте следующее условие в ваш обработчик отправки
submitHandler() {
const form = document.body.querySelector('#formId');
// Fix issue with html5 validation
if (form.checkValidity && !form.checkValidity()) {
return;
}
// Submit and hide form safely
}
Изменить: объяснение
Предполагая, что вы скрываете форму при отправке, этот код гарантирует, что форма / поля не будут скрыты, пока форма не станет действительной. Таким образом, если поле недопустимо, браузер может сосредоточиться на нем без проблем, так как это поле все еще отображается.