我在表单中有2个复选框,这两个复选框都包含在form
中。
对于form
中的一个,我添加了属性autocomplete="off"
以下是代码段
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<form name="chkBoxForm" >
<div>
<input type="checkbox" value="100" name="product"/>My Checkbox1
</div>
</form>
<form name="chkBoxForm" autocomplete="off">
<div>
<input type="checkbox" value="200" name="product"/>My Checkbox2
</div>
</form>
</body>
</html>
现在我的问题是,如果我们手动检查这些复选框,如果我们按 F5 ,则取消选中属性autocomplete="off"
的复选框。但是仍然检查没有该属性的复选框。这种情况发生在FireFox 22中。
此行为因浏览器而异 在IE中,两个复选框都保持选中状态,而在Chrome中,两个复选框都未选中。
但是当我在地址栏中按Enter键时,它会在所有浏览器中取消选中。
当我们按 F5 时,有人可以告诉我如何取消选中这些复选框吗? 我知道这可以通过Javascript来处理。
还有其他html方法可以解决这个问题吗?
答案 0 :(得分:16)
不,简单的HTML没有办法。 Javascript可能是您目前唯一的解决方案..
循环遍历javascript中的所有复选框并将其设置为取消选中:
var checkboxes = document.getElementsByTagName('input');
for (var i=0; i<checkboxes.length; i++) {
if (checkboxes[i].type == 'checkbox') {
checkboxes[i].checked = false;
}
}
将它包装在一个onload监听器中,然后你就可以了:)
答案 1 :(得分:9)
的jQuery
$('input[type=checkbox]').removeAttr('checked');
或者
<!-- checked -->
<input type='checkbox' name='foo' value='bar' checked=''/>
<!-- unchecked -->
<input type='checkbox' class='inputUncheck' name='foo' value='bar' checked=''/>
<input type='checkbox' class='inputUncheck' name='foo' value='bar'/>
+
$('input.inputUncheck').removeAttr('checked');
答案 2 :(得分:5)
如果你有一个带有id的复选框checkbox_id。你可以用JS prop('checked', false)
或prop('checked', true)
$('#checkbox_id').prop('checked', false);
答案 3 :(得分:2)
想到一个快速解决方案: -
<input type="checkbox" id="markitem" name="markitem" value="1" onchange="GetMarkedItems(1)">
<label for="markitem" style="position:absolute; top:1px; left:165px;"> </label>
<!-- Fire the below javascript everytime the page reloads -->
<script type=text/javascript>
document.getElementById("markitem").checked = false;
</script>
<!-- Tested on Latest FF, Chrome, Opera and IE. -->
答案 4 :(得分:1)
这是浏览器特定的行为,是一种让用户更方便填写表单的方法(比如在遇到错误时重新加载页面而不会丢失他们刚输入的内容)。因此,除了使用javascript在页面加载上设置默认值之外,没有确定的方法可以跨浏览器禁用此功能。
Firefox虽然似乎在您指定标题时禁用此功能:
Cache-Control: no-store
请参阅此question。
答案 5 :(得分:0)
一种简单的方法,只有HTML,没有javascript,没有jQuery
<input name="box1" type="hidden" value="0" />
<input name="box1" type="checkbox" value="1" />
答案 6 :(得分:-3)
嗯,我想你可以使用checked =“false”。这是取消选中复选框的html方法。 您可以参考http://www.w3schools.com/jsref/dom_obj_checkbox.asp。