jQuery - 取消选中复选框

时间:2016-05-10 06:27:57

标签: javascript jquery html checkbox

我认为这应该很容易。这里有很多关于使用jQuery取消选中复选框的答案但是当我尝试它们时它们似乎不起作用。我想取消选中它们作为重置表单功能的一部分。

我有一个循环,我在其中创建了复选框: <input type="checkbox" name="is_chosen[]" value="{{ $sample->id }}" class="flat">

以下是取消选中复选框的代码(并非最初检查所有复选框):

$('input:checkbox').each(function () {
  if(this.checked) {
    $(this).attr('checked', false);
  }
});

我还尝试用attr替换prop。我也试过使用$(input:checkbox).prop('checked', false);。我已经尝试过其他人,但他们没有工作。我错过了什么?

5 个答案:

答案 0 :(得分:12)

您不需要使用each()。你可以这样做。

$('input:checkbox:checked').prop('checked', false);

答案 1 :(得分:2)

确实有效:https://jsfiddle.net/bfqew4du/

setInterval(function(){
  $('input:checkbox').each(function () {
    $(this).attr('checked', !this.checked);
  });
},1000);

确保在DOM加载后运行javascript。

答案 2 :(得分:2)

您无需循环,只需一行代码即可实现:使用$(":checked").attr('checked', false);

$(document).ready(function(){
    $(":checked").attr('checked', false);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" checked="checked">
<input type="checkbox" checked="checked">
<input type="checkbox">
<input type="checkbox">

答案 3 :(得分:0)

最好将唯一的类名应用于动态元素,以便可以使用此类名选择它们。因此,在生成时,您可以使用类名

附加复选框
...append('<input type="checkbox" name="is_chosen[]" value="1" class="flat dynmc-check">');

然后使用此类dynmc-check选中这些复选框:

$('.dynmc-check')

使用此选择器可以执行所需的操作,例如重置复选框:

$('.dynmc-check').removeAttr('checked');

或计算已检查的那些:

var checkCount = $('.dynmc-check:checked').length;

有关详细信息,请参阅this working fiddle

答案 4 :(得分:0)

我很抱歉给你带来不便。

我发现问题是class="flat"(来自Bootstrap),虽然我不知道究竟是为什么。我开始担心,因为你的答案都没有奏效。然后我想要删除课程。当班级在那里时,执行该功能后仍然检查所有选中的复选框。当我删除该类时,执行该功能后复选框变为未选中状态。我再次尝试了你的答案,他们的工作。我尝试了我发布的代码并且它有效。所以一直是这个班级。