我有一个带有几个复选框的表单。每次我检查/取消选中一个框表格都会被提交。相关代码:
$("input[name='checkboxgroup']").bind("click",function(e) {
e.preventDefault();
...
...
form.submit();
});
然而,当我点击IE9上的后退按钮时,它会显示我的所有复选框仍然被选中(预期:最后一次选中复选框,然后才能取消选中后退按钮)
每当页面重新加载时,后端都会发送数据以选中/取消选中复选框。我已经验证在“返回”按钮确实处于“未选中”状态之前单击了最后一个复选框。但是,不知何故,IE9将此复选框设置为已选中。
修改
我做了一些快速检查:
前
我没有选中复选框
我在e.preventDefault()
语句之后在开发工具调试器中暂停...但在submit()
之前检查传递给后端的状态。
在开发工具控制台中,我检查$("#checkboxId").attr("checked")
以验证我看到的状态
我观察到的内容
verify $("#checkboxId1").attr("checked") = undefined ...(expected as the box is not checked) -->
check this checkbox ---> hits debugger break point --->
verify $("#checkboxId1").attr("checked") is "checked" (as expected) ...but the browser shows checkbox not checked (also expected..preventDefault effect) -->
request goes to backend --> reloads page -->
verify $("#checkboxId1").attr("checked") is checked(as expected) -->
checkbox is now checked (perfect)
...现在问题是:
完成上述步骤...如果我点击后退按钮
我的期望:应该显示未选中的复选框1
实际结果:它仍显示已检查。
在其他浏览器中:FF,Chrome,Opera,Safari按预期运行
任何指示赞赏。