Сегодня я столкнулся с очень сложной проблемой. Когда я делал некоторую проверку вводов, бизнес -логика моего проекта заключалась в том, что когда я выбрал конкретную опцию выбора, для пользователя была отображена поле ввода ввода. Однако, если пользователь ничего не сделал, для ввода пользователя должно появиться ящик для предупреждения. После ввода я бы скрывал вход.
Поэтому возникает следующая проблема. При отображении ввода входного окна, фокус должен быть автоматически получен. В настоящее время я использую это
Кода -копия выглядит следующим образом:
document.getElementbyId ('id'). Focus ();
Ну, я попробовал это, и это сработало очень хорошо. Я не мог не чувствовать себя счастливым, и я сделал это!
Но расчеты не так хороши, как человеческие расчеты. Когда я тестировал с Firefox, все закончилось. Это было легко использовать, когда я впервые отображал вход, но когда я закрыл поле напоминания о предупреждении, ввод не мог получить фокус.!
Проблема сложно, и я не знаю, почему. Итак, я проверил ответы мастеров в Интернете, нашел следующий трюк и попробовал, и это было действительно полезно!
После предупреждения оригинал
Кода -копия выглядит следующим образом:
document.getElementByIdx ('id'). Focus ();
Изменить на
Кода -копия выглядит следующим образом:
window.setTimeout (function () {document.getElementById ('id'). Focus ();}, 0);
Хорошо, проблема решена!
SETTIMEOUT относится к выполнению предыдущего выражения после задержки указанного времени после загрузки. Конечно, здесь это выполнение функции после задержки 0ms.
Когда я только что решил эту проблему, я до сих пор не знаю, почему ее можно решить под Firefox. Если кто -то великий Бог знает, я оставлю сообщение, чтобы покойные студенты узнали об этом, я очень благодарен!