所以 - 我有一个复选框
<asp:CheckBox ID="chkOrder" runat="server" Visible='<%#IsCheckBoxVisible() %>'
Checked="false"
OnCheckedChanged="chkOrder_CheckedChanged" AutoPostBack="true"
EnableViewState="false"></asp:CheckBox>
上面的一个。现在,复选框位于gridview和数据绑定中 - 对于gridview中的所有行,复选框设置为false。问题是第一个复选框仍然是真实的。
在IE中,问题不存在,Chrome也是如此。我的选择已经用完了。 如果我使用
$("checkboxName").attr("checked"); // verified on jquery ready function.
在FF中这是真的; IE错误; Chrome错误。
任何提示?
修改
现在为此做好准备:在生成的html中 - 没有检查属性。 FF和IE之间的差异完全相同。
另一件事 - 包含复选框的网格上有一个ajax面板,当我打开网格时,尝试转到第2页 - 触发codeBhind中的checkedChanged。
答案 0 :(得分:16)
Firefox默认会记住表单字段的状态。 Ctrl+F5
将强制Firefox清除此缓存。
您可以为单个表单和输入元素禁用此选项:
<form autocomplete="off">
<input ... autocomplete="off" />
答案 1 :(得分:6)
如果您不希望选中此复选框,则应完全省略“已检查”属性,因为检查是由checked
属性的状态触发的,而不是其值:
复选框(和单选按钮)是可由用户切换的开/关开关。 当设置了控制元素的checked属性时,开关处于“打开”状态。
http://www.w3.org/TR/html401/interact/forms.html#checkbox
对我来说,以下标记产生一个复选框,在IE,Firefox和Opera中检查,正如您所期望的那样基于规范:
<input type="checkbox" checked="false">
答案 2 :(得分:4)
在我最近做的一些PHP编码中,我注意到即使在F5页面刷新之后,FF3也记住了我检查的内容。查看源代码显示了我想要生成的正确HTML。要解决此问题,请转到地址栏并再次强制请求页面。
为什么这个工作是必要的我不确定,但从正常的可用性角度来看,我很感激它,而不是在开发过程中。
答案 3 :(得分:1)
这揭示了一个带有复选框的有趣怪癖。这里有一些非常简单的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>
答案 4 :(得分:0)
您是否尝试比较FF和IE的生成HTML? (使用“查看html源代码”)
只是为了更准确地定位问题。 这只是一个小小的机会,但如果两个浏览器的HTML不同,那么在服务器端就会出现ASP创建HTML的问题。
如果两者相同,并且完全HTML投诉,您在FF中发现了错误
答案 5 :(得分:0)
在FireFox 3中也会出现这种情况,如果您使用所述框来运行AJAX /更新页面,这可能是一个很大的痛苦。
如果用户刷新页面或做一些后退按钮怪异,他们最终可能仍然选择了选择框,但实际上必须取消选择并重新选择才能重新运行AJAX。
在这种情况下,我发现使用body onunload事件来清除任何选择/复选框“解决”“问题”。
答案 6 :(得分:0)
$("input[id$=chkOrder]").click(function() {
if (!$(this).attr("checked")) { $(this).removeAttr("checked"); }
else { $(this).attr("checked", "checked"); }
})