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, время: 14:48. |