我在表单中有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>
Run Code Online (Sandbox Code Playgroud)
现在我的问题是,如果我们手动检查这些复选框,如果我们按下F5,那么带有属性的复选框就会autocomplete="off"被取消选中.但是仍然检查没有该属性的复选框.这发生在FireFox 22中.
此行为因浏览器而异.
在IE中,两个复选框都保持选中状态,而在Chrome中,两个复选框都未选中.
但是当我在地址栏中按Enter键时,它会在所有浏览器中取消选中.
当有人按下时,有人可以告诉我如何取消选中这些复选框F5吗?
我知道这可以通过Javascript来处理.
有没有其他HTML方式处理这个?
Dav*_*iña 18
不,简单的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;
}
}
Run Code Online (Sandbox Code Playgroud)
将它包装在一个onload监听器中,你应该没问题:)
小智 10
jQuery的
$('input[type=checkbox]').removeAttr('checked');
Run Code Online (Sandbox Code Playgroud)
要么
<!-- 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'/>
Run Code Online (Sandbox Code Playgroud)
+
$('input.inputUncheck').removeAttr('checked');
Run Code Online (Sandbox Code Playgroud)
如果您有一个ID为checkbox_id的复选框,则可以通过JS使用prop('checked', false)或设置其状态prop('checked', true)
$('#checkbox_id').prop('checked', false);
Run Code Online (Sandbox Code Playgroud)