Я хочу проверить поле ввода, когда пользователь переходит к другому полю.У меня есть следующий код, который отлично работает.
validate = (v) => {
if (v.value=="yes") return;
alert("Value must be exactly 'yes'. Please rectify.");
//v.focus();
}
<p>Enter only 'yes' in this field:</p>
<input onblur='validate(this);' />
Однако, если я добавлю вызов метода focus
с намерением выделить пользователя для исправления ошибки перед продолжением, метод onblur
будетвыстрелил бесконечно.Почему это так?
Скрипка - https://jsfiddle.net/OldGeezer/8xfLwvn6/4/
При дальнейшем тестировании я обнаружил, что бесконечный onblur
не произойдет, если он потеряет фокус, потому что я нажимаю на окно другого приложения.Это происходит, если я просто щелкаю другую часть веб-страницы (в Chrome).