Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery或纯JS重置所有复选框?_Javascript_Jquery_Checkbox - Fatal编程技术网

Javascript 如何使用jQuery或纯JS重置所有复选框?

Javascript 如何使用jQuery或纯JS重置所有复选框?,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,如何使用jQuery或纯JS重置文档中的所有复选框?如果您指的是如何从所有复选框中删除“选中”状态: $('input:checkbox').removeAttr('checked'); 上面的答案对我不起作用- 以下措施奏效了 $('input[type=checkbox]').each(function() { this.checked = false; }); 这将确保所有复选框均未选中。如果要使用表单的重置功能,最好使用以下选项: $('input[type=

如何使用jQuery或纯JS重置文档中的所有复选框?

如果您指的是如何从所有复选框中删除“选中”状态:

$('input:checkbox').removeAttr('checked');

上面的答案对我不起作用-

以下措施奏效了

$('input[type=checkbox]').each(function() 
{ 
        this.checked = false; 
}); 

这将确保所有复选框均未选中。

如果要使用表单的重置功能,最好使用以下选项:

$('input[type=checkbox]').prop('checked',true); 

看起来
removeAttr()
无法通过
form.reset()
重置


若要取消选中该复选框,请将您的逻辑反过来执行相反的操作

我使用了类似的方法

$(yourSelector).find('input:checkbox').removeAttr('checked');

在某些情况下,默认情况下可能会选中该复选框。如果要恢复默认选择而不是设置为未选择,请比较
defaultChecked
属性

$(':checkbox').each(function(i,item){ 
        this.checked = item.defaultChecked; 
}); 
正如在中所说的,使用下面的脚本将完成这项工作

$('input:checkbox').removeAttr('checked');
但是,如前所述,在1.6版之后,最好使用


注意,在jQueryV1.6及更高版本中,您应该使用 .prop('checked',false)用于更大的跨浏览器 相容性

使用jQuery时要小心。each()可能会导致性能问题。(同样,在这种情况下,避免使用
jQuery.find()
。请分别使用)


您可以选择哪些div或页面的某部分可以选中复选框,哪些不选中。我遇到了这样一个场景:我的页面中有两个表单,其中一个表单有预填充值(用于更新),另一个表单需要重新填充

$('#newFormId input[type=checkbox]').attr('checked',false);

这将仅使id为newFormId的表单中的复选框处于未选中状态。

我以前使用过此选项:

$('input[type=checkbox]')。prop('checked',false);
似乎.attr和.removeAttr在某些情况下不起作用


编辑:请注意,在jQuery v1.6及更高版本中,您应该使用
.prop('checked',false)
来提高跨浏览器兼容性-请参阅

此处注释:


引导示例
点击
我有一辆自行车
我有一辆车
我有一辆自行车 我有一辆车
$('.btn')。单击(函数(){ $('input[type=checkbox]')。每个(函数() { 此项检查=错误; }); })
Javascript
要执行相反的操作,请参见:

此脚本正在切换复选框的状态。不确定我是否做错了请注意,在jQuery v1.6及更高版本中,您应该使用.prop('checked',false),以提高跨浏览器兼容性-请参阅我在打开新对话框之前使用此选项重置表单。在此之后,我需要把一个复选框“选中”,这是不工作的。当我查看生成的代码时,它是“选中的”,但在我的页面上它不是$('input:checkbox')$('input[value='+val+']').attr('checked',true);现在这是一个过时的答案-请参阅:不鼓励使用仅代码的答案。你真的想包括一些解释。虽然公认的答案也适用,但我发现这是最好的方法。请,如果你正在阅读,考虑使用这种方式,因为它的最佳做法是:这不是重新设置复选框,是不设置它,你需要使用iTime.Debug检查来重置为原始状态!我的回答几乎是一样的!重置和取消设置之间存在差异!向上的
$('input:checkbox').removeAttr('checked');
$('input:checkbox').prop('checked', false);
$('input[type=checkbox]').each(function() 
{ 
    $(this).prop('checked', false); 
});
$('#newFormId input[type=checkbox]').attr('checked',false);
<!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>
var clist = document.getElementsByTagName("input");
for (var i = 0; i < clist.length; ++i) { clist[i].checked = false; }
$('input:checkbox').each(function() { this.checked = false; });