ホームページ  >  記事  >  ウェブフロントエンド  >  IE_Form の特殊効果で更新後のチェックボックスの初期化に関する問題

IE_Form の特殊効果で更新後のチェックボックスの初期化に関する問題

WBOY
WBOYオリジナル
2016-05-16 18:36:231071ブラウズ

一見したところ、この関数は非常に単純なチェックボックスであり、スクリプトを追加し、このチェックボックスの selected 属性を false に設定します。

コードをコピー コードは次のとおりです:


<script>document.getElementById("chk_UnInital").checked=false;<br> </div> <br>このコードが使用されますFirefox などでは、この要件は IE では実現できません。更新するか戻るかにかかわらず、チェックが常にチェックされます。 <br>このコードは IE では動作しないのでしょうか? <br> 確認するには、このスクリプトの前後にアラートを追加し、checked=false を実行する前後でチェックボックスがオフになっていることを確認します。警告ボックスが確認されると、代わりにチェックボックスが表示されます。 <br>これは、後続のページ読み込みシーケンスで、イベントによってこのチェックボックスが再度 true に設定されることを意味します。まず、ページの onload <br><div class="codetitle"><span><a style="CURSOR: pointer" data="23952" class="copybut" id="copybut23952" onclick="doCopy('code23952')"><u>コードをコピーして実行してください。 🎜></u></a> コードは次のとおりです:</span></div> <div class="codebody" id="code23952"><script> <br>window.onload=function(){ <br>alert("before"); > document.getElementById("chk_UnInital").checked=false; <br>} <br></script>


予想どおり、alert("before"); を実行するとこれが見つかりました。チェック マークが選択されているということは、onload イベントの前にブラウザによってチェック マークが自動的に選択されたことを意味します。具体的な理由には、IE の内部メカニズムが関係しています。
この関数を onload イベントに登録すると、この要件が満たされます。
ただし、ローカル テスト中に、ページのすべての要素がロードされるまで onload は実行されません。これにより、onload イベントが遅延することになります。
後で、Web サイト上の別のチェックボックスが、ページが更新されたときに前の状態が保存されないことがわかりました。慎重に比較した結果、この入力には追加の selected="" 属性があることがわかりました:

この属性を使用すると、イベントを onload に配置しなくても機能します
その理由は何ですか?
次に、次の実験を実行します。


コードをコピーします コードは次のとおりです:
;br>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。