Странное поведение alert на onblur

288
16 февраля 2017, 00:10

Нижеприведённый код после blur из пустого поля ввода бесконечно выдаёт alert.

Почему?
В каких браузерах/ОС наблюдается это поведение?

ОС: Ubuntu 14.04.5 LTS
Браузер: Google Chrome 55.0.2883.87 (64-bit)

let limit = 0; // Ограничиваем число алертов, этот limit не относится к вопросу 
function valid(el) { 
  if (!el.value && limit++<3) { 
    alert('Value is empty'); 
    el.focus(); 
  } else limit = 0; 
}
<input onblur="valid(this)">

Дополнение:
Выполнение el.focus на другой итерации event loop прерывает порочный круг(хотя и не всегда):

function valid(el) {
  if (!el.value) {
    alert('Value is empty');
    setTimeout(() => el.focus());
  }
}
READ ALSO
JavaScript Прокрутить страницу вниз

JavaScript Прокрутить страницу вниз

Как прокрутить веб страницу вниз при помощи чистого java scriptСтраница строится динамически по мере прокрутки вниз

659
Изменение скорости смены слайдов

Изменение скорости смены слайдов

Необходимо осуществить возможность смены скорости слайдовПопыталась сделать через ползунок, но не работает

310
Стилизация инфо-окна google maps

Стилизация инфо-окна google maps

Всем доброго дняПодскажите пожалуйста как можно стилизовать свое информационное окно на карте гугл? Буду рад любым подсказкам

464
JQuery,animate() - как сделать анимированный блок

JQuery,animate() - как сделать анимированный блок

Дело таково что надо сделать рекламный блок который движется снизу на вверх и исчезает, затем опять появляется снизу и так до бесконечности

278