Когда поле ввода изменяется (onchange), я запускаю функцию для установки переменной. Единственная проблема заключается в том, что сначала поле должно терять фокус до того, как будет установлена переменная, и я могу проверить, изменилось ли поле (-ы), это то, что я хочу сделать, когда пользователь нажимает на вкладку, поэтому я могу проверить, пользователь забыл представить свою форму на предыдущей вкладке. Ho, чтобы заставить потерять фокус всех возможных полей, значит, сначала может произойти событие onchange
?
Как заставить потерять фокус всех полей в форме в jQuery
Ответ 1
Вы можете использовать это:
$(':focus').blur()
Если на вашем сайте нет jQuery, вы можете заменить его на:
let el = document.querySelector( ':focus' );
if( el ) el.blur();
Ответ 2
Вы можете запустить событие .blur()
$('SomeElement').blur(function () {
// do whatever
});
$('SomeElement').blur();
Ответ 3
Вам не нужен jQuery для этого; vanillaJS может сделать это тоже.
document.activeElement.blur();
Примечание. Обычно я проверял бы null-ness перед вызовом метода, но activeElement
будет возвращать null, только если нет узла ‹body›
, поэтому этот прямой вызов довольно безопасен.