Существует фундаментальная проблема при попытке изменить фокус на поле на onblur
, когда оно недопустимо.Если пользователь решает уйти, он просто не может.Когда они щелкают вдали от поля, их насильно забирают обратно.Я видел случаи, когда пользователь был вынужден прекратить сеанс браузера, просто чтобы избежать чрезмерной проверки onblur
.
Я понимаю, что это может быть не тем решением, которое вы ищете, но могу ли я рекомендоватьдругой подход, который все еще включает проверку на стороне клиента.
Я рекомендую вам выделить поле как недействительное в некотором смысле на onblur
.Например, поместите звездочку рядом с ней, выделите ее красным и т. Д. Таким образом, вы можете обойтись без alert
, и у пользователя все еще есть контроль.
Когда пользователь приходит, чтобы отправить форму, вы выполняете свой клиент-затем проверяет сторону и показывает предупреждение (см. ответ @Phill Sacre)