如何使用jQuery或纯JS重置文档中的所有复选框?
Answers:
如果您是要从所有复选框中删除“已选中”状态,请执行以下操作:
$('input:checkbox').removeAttr('checked');
如果要使用表单的重置功能,则最好使用此功能:
$('input[type=checkbox]').prop('checked',true);
要么
$('input[type=checkbox]').prop('checked',false);
似乎removeAttr()
无法通过重置form.reset()
。
我以前用过:
$('input[type=checkbox]').prop('checked', false);
似乎.attr和.removeAttr在某些情况下不起作用。
编辑:请注意,在jQuery v1.6及更高版本中,您应该使用它.prop('checked', false)
来获得更大的跨浏览器兼容性-请参阅https://api.jquery.com/prop
在这里评论:如何使用jQuery或纯JS重置所有复选框?
var clist = document.getElementsByTagName("input");
for (var i = 0; i < clist.length; ++i) { clist[i].checked = false; }
$('input:checkbox').each(function() { this.checked = false; });
要执行相反的操作,请参见:按ID /类别选择所有复选框
$(":checkbox:checked").each(function () {
this.click();
});
取消选中复选框,将逻辑转过来做相反的事情
如Tatu Ulmanen的回答中所述,使用以下脚本将完成此任务
$('input:checkbox').removeAttr('checked');
但是,正如Blakomen的评论所说,在1.6版之后,最好jQuery.prop()
改用
请注意,在jQuery v1.6及更高版本中,应使用.prop('checked',false)代替,以获得更大的跨浏览器兼容性
$('input:checkbox').prop('checked', false);
使用时请小心jQuery.each()
,可能会导致性能问题。(也请避免jQuery.find()
在这种情况下使用。
$('input[type=checkbox]').each(function()
{
$(this).prop('checked', false);
});
我用过这样的东西
$(yourSelector).find('input:checkbox').removeAttr('checked');
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container check">
<button class="btn">click</button>
<input type="checkbox" name="vehicle" value="Bike">I have a bike<br>
<input type="checkbox" name="vehicle" value="Car">I have a car<br>
<input type="checkbox" name="vehicle" value="Bike">I have a bike<br>
<input type="checkbox" name="vehicle" value="Car">I have a car<br>
</div>
<script>
$('.btn').click(function() {
$('input[type=checkbox]').each(function()
{
this.checked = false;
});
})
</script>
</body>
</html>