我认为这应该很容易。这里有很多关于使用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);
。我已经尝试过其他人,但他们没有工作。我错过了什么?
答案 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),虽然我不知道究竟是为什么。我开始担心,因为你的答案都没有奏效。然后我想要删除课程。当班级在那里时,执行该功能后仍然检查所有选中的复选框。当我删除该类时,执行该功能后复选框变为未选中状态。我再次尝试了你的答案,他们的工作。我尝试了我发布的代码并且它有效。所以一直是这个班级。