FF3ではチェックボックスがチェックされたままになりますが、IE、Chrome、または
-
03-07-2019 - |
質問
だから-チェックボックスがあります
<asp:CheckBox ID="chkOrder" runat="server" Visible='<%#IsCheckBoxVisible() %>'
Checked="false"
OnCheckedChanged="chkOrder_CheckedChanged" AutoPostBack="true"
EnableViewState="false"></asp:CheckBox>
上記のもの。現在、チェックボックスはグリッドビューにあり、データバインドされています-グリッドビューのすべての行に対して、チェックボックスはfalseに設定されています。問題は、最初のチェックボックスがまだ真にチェックされていることです。
IEでは、Chromeと同様に問題は存在しません。オプションが不足しています。 また、使用する場合
$("checkboxName").attr("checked"); // verified on jquery ready function.
FFでは、それは事実です。 IE false;クローム偽。
ヒントはありますか
編集
これで準備が整いました:生成されたhtmlには、チェックされた属性はありません。 FFとIEの差分はまったく同じです。
別のこと-チェックボックスを含むグリッドにはajaxパネルがあり、グリッドをページングするときに2ページ目に移動しようとします-codebehindのcheckedChangedがトリガーされます。
解決
最近行ったいくつかのphpコーディングで、FF5ページを更新した後でも、FF3がチェックした内容を記憶していることに気付きました。ソースを見ると、生成したい正しいHTMLが示されました。これを回避するには、アドレスバーに移動して、ページの要求を再度強制します。
なぜこの回避策が必要なのかはわかりませんが、通常のユーザビリティの観点からは、開発中だけでなく高く評価しました。
他のヒント
Firefoxは、デフォルトでフォームフィールドの状態を記憶しています。 Ctrl + F5
は、Firefoxにこのキャッシュをクリアさせます。
個々のフォームおよび入力要素に対してこれを無効にできます:
<form autocomplete="off">
<input ... autocomplete="off" />
&quot; checked&quot;は省略してください。チェックは、値ではなく、 checked
属性のプレゼンスによってトリガーされるため、チェックボックスをチェックしたくない場合は完全に属性:
チェックボックス(およびラジオボタン)は、ユーザーが切り替えることができるオン/オフスイッチです。 スイッチが「オン」になっているコントロール要素のchecked属性が設定されている場合。
http://www.w3.org/TR/html401/ interact / forms.html#checkbox
私にとって、次のマークアップは、IE、Firefox、Operaでチェックされるチェックボックスを生成します。仕様に基づいて期待どおりです:
<input type="checkbox" checked="false">
これは、チェックボックスのある興味深い癖に光を当てます。本当に適切に要約するために私が思いついたいくつかの非常にシンプルなhtmlがあります:
<html>
<body>
<input type="checkbox" checked="false" id="cb" />
<script language="javascript">
if (cb.checked == true)
document.write('this is retarded');
</script>
</body>
</html>
FFとIEから生成されたHTMLを比較しようとしましたか? (&quot; view html source&quot;)
問題をより正確に特定するだけです。 わずかなチャンスですが、両方のブラウザでHTMLが異なる場合、サーバー側でASPがHTMLを作成する方法に問題があります。
両方が同じであり、完全にHTMLの苦情である場合、FFでバグを見つけました。
これは、FireFox 3の選択ボックスでも発生します。このボックスを使用してAJAXを実行したり、ページを更新したりすると、大きな苦痛になります。
ユーザーがページを更新するか、戻るボタンの奇妙な操作を行うと、選択ボックスが選択されたままになる可能性がありますが、AJAXを再実行するには、実際に選択を解除して再選択する必要があります。
この場合、body onunloadイベントを使用して、選択/チェックボックス&quot; solves&quot;をクリアすることがわかりました。 「問題」。
$("input[id$=chkOrder]").click(function() {
if (!$(this).attr("checked")) { $(this).removeAttr("checked"); }
else { $(this).attr("checked", "checked"); }
})