Как сделать метод javascript focus() работать в событии onBlur для ввода текстового поля?

для меня метод javascript focus() работает отлично, если я использую его с кнопкой и событием onClick, но с onBlur из текстового поля он не работает. Может ли кто-нибудь направить меня на это?

3 ответа

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

Тем не менее, существует еще одно возможное обходное решение. Вы можете позвонить displayResult() при отправке формы, проверить, пуст ли text1, и отменить отправку, если он пуст, и установить фокус на text1. Я переписал код для вас.

Надеюсь, что это поможет...

Мир вам...


Невозможно повторно применить фокус к элементу, когда срабатывает событие размытия. Используйте таймер с интервальным значением 0, чтобы задержать вызов для фокусировки до следующего:

function displayResult() {
 var inp1 = document.getElementById("text1").value,
 inp2 = inp1.length;
 if(inp2==0) {
 alert("Field 1 cannot be left Empty");
 //document.getElementById("text1").value="";
 window.setTimeout(function () { 
 document.getElementById("text1").focus();
 }, 0);
 }
}


Вам нужно установить небольшую задержку в фокусировке поля.

setTimeout (function() {field.focus()}, 10);

like:

Я советую вам не использовать onblur при проверке ввода, если вы являетесь уведомлением об уведомлении в качестве оповещений. Это довольно раздражает, оно вызывает бесконечные предупреждения. Подтвердить событие onsubmit формы.

licensed under cc by-sa 3.0 with attribution.