今日、私は非常に難しい問題に遭遇しました。入力ボックスの検証を行っていたとき、プロジェクトのビジネスロジックは、選択の特定のオプションを選択したときに、ユーザーが物事を入力するために入力入力ボックスが表示されたことです。ただし、ユーザーが何もしなかった場合、ユーザーが入力するには警告ボックスがポップアップする必要があります。入力後、入力を非表示にします。
したがって、次の問題が発生します。入力入力ボックスが表示されると、フォーカスを自動的に取得する必要があります。この時点で、私はそれを使用します
コードコピーは次のとおりです。
document.getElementById( 'id')。focus();
まあ、私はそれを試してみました、そしてそれは非常にうまく機能しました。私は手伝うことができませんでしたが、幸せを感じ、それを成し遂げました!
しかし、計算は人間の計算ほど良くありません。 Firefoxでテストしていたとき、それは終わりました。最初に入力を表示したときは使いやすいものでしたが、アラートリマインダーボックスを閉じたとき、入力は焦点を獲得できませんでした。!
問題は難しいです、そして私は理由がわかりません。それで、私はインターネット上のマスターの答えをチェックし、次のトリックを見つけて試しました、そしてそれは本当に便利でした!
アラートの後、オリジナル
コードコピーは次のとおりです。
document.getElementByIdx( 'id')。focus();
に変更します
コードコピーは次のとおりです。
window.settimeout(function(){document.getElementbyId( 'id')。focus();}、0);
良い、問題が解決した!
SettimeOutとは、読み込み後に指定された時間を遅延させた後の以前の式の実行を指します。もちろん、ここでは0msを遅らせた後の関数の実行です。
この問題を解決しただけで、なぜFirefoxで解決できるのかはまだわかりません。偉大な神が知っているなら、私は亡くなった学生にそれを学ばせてくれるようにメッセージを残します、私はとても感謝しています!