Мне не нравится принудительная фокусировка, но разве вы не можете просто сфокусироваться после размытия?
element.focus();
Если это происходит в событии размытия не всегда (я не уверен точно, когда оно срабатывает, до или после фактического размытия), избыточное время ожидания также будет работать: setTimeout(function () { element.focus() }, 0)
.
Но, пожалуйста, не делай этого. Черт возьми, вы никогда не должны использовать alert
или какой-либо модальный диалог для веб-интерфейса. Как насчет добавления класса invalid
в поле формы, откладывания сообщения в стороне от него и отключения отправки до тех пор, пока все поля не будут действительными? Это гораздо менее инвазивное решение, которое позволяет мне заполнять форму любым удобным для меня способом, а не любым простым.