fucus() в обработчике onblur
Есть текстовое поле input, нужно проверить введенное пользователем значение, и если оно не верное, не давать ему уйти с этого поля.
Делаю так - в обработчике onblur проверяю корректность, и если ошибка, вызываю focus Это работает в хроме и в IE6, но НЕ работает в firefox, вопрос - почему? При этом метод focus, если он висит не на обработчике onblur, работает нормально. Вот пример: http://learn.javascript.ru/play/zhPeT По задумке, если первое поле пустое, уйти с него нельзя. По кнопке вызывается та же функция - проверка, и если ошибка, focus, она работает. Вопрос - почему в firefox не работает focus, если он в обработчике onblur? |
Хз, но в подобных случаях setTimeout обычно решает проблему :)
|
function check()
{ var a = document.getElementsByTagName('form')[0].getElementsByName('n1')[0];
if(idTimer)clearTimeout(idTimer)
if( a.value.length == 0 )
idTimer = setTimeout( function check() {a.focus()},10);
}
|
С таймаутом работает, но хочется не только чтобы работало, а разобраться.
Цитата:
|
| Часовой пояс GMT +3, время: 16:05. |