Jquery 选中一个、部分或所有复选框并激活“继续”按钮不起作用

Jquery 选中一个、部分或所有复选框并激活“继续”按钮不起作用,jquery,html,checkbox,Jquery,Html,Checkbox,“全部选中/全部取消选中”按钮允许我选中或取消选中表单中的所有复选框。继续。。。按钮应在选中一个、多个或所有复选框后立即激活 只要我手动选中复选框,这就可以正常工作,但在使用“全部选中”按钮时不起作用。在这种情况下,程序将继续。。。按钮保持不活动状态 我尝试了其他几种解决方案,结果也很相似。特别是它非常有趣,但我无法根据自己的需要改变它 帮点忙就好了 我有下面的HTML代码 <form id="container"> <input type="button" clas

“全部选中/全部取消选中”按钮允许我选中或取消选中表单中的所有复选框。继续。。。按钮应在选中一个、多个或所有复选框后立即激活

只要我手动选中复选框,这就可以正常工作,但在使用“全部选中”按钮时不起作用。在这种情况下,程序将继续。。。按钮保持不活动状态

我尝试了其他几种解决方案,结果也很相似。特别是它非常有趣,但我无法根据自己的需要改变它

帮点忙就好了

我有下面的HTML代码

<form id="container">
     <input type="button" class="check" value="check all">
     <input class="cb" type="checkbox" value="true"></input>
     <input class="cb" type="checkbox" value="true"></input>
     <input class="cb" type="checkbox" value="true"></input>
     <input class="cb" type="checkbox" value="true"></input>
     <button type="submit" id="proceedBut">proceed...</button>
</form>
使用以下jquery代码

$('.check:button').click(function(){
     var checked = !$(this).data('checked');
     $('input:checkbox').prop('checked', checked);
     $(this).val(checked ? 'uncheck all' : 'check all' )
     $(this).data('checked', checked);
});

var checkBoxes = $('#container .cb');
checkBoxes.change(function () {
    $('#proceedBut').prop('disabled', checkBoxes.filter(':checked').length < 1);
});
$('#container .cb').change();

checkboxes.change在单击“全选”按钮时不触发,在中添加了一行。check:button.click事件

$('.check:button').click(function(){
    var checked = !$(this).data('checked');
    $('input:checkbox').prop('checked', checked);
    $(this).val(checked ? 'uncheck all' : 'check all' )
    $(this).data('checked', checked);
    $('#proceedBut').prop('disabled', checkBoxes.filter(':checked').length < 1);
});
将复选框.first.change添加到的click事件中。选中:按钮可触发first.cb的更改事件,如下所示

var复选框=$'container.cb'; $。选中:按钮。单击函数{ var checked=!$this.data'checked'; $输入:复选框'.prop'checked',选中; $this.valchecked?'uncheck all':'check all'; $this.数据“已检查”,已检查; 复选框。第一。更改; }; checkbox.changefunction{ $'proceedBut'.prop'disabled',复选框.filter':选中。长度<1; }; 复选框。第一。更改; 继续
$'input:checkbox'.prop'checked',checked.trigger'change'您的代码中已经有了解决方案。最后,您触发了一个初始更改事件。只需在CheckAll事件处理程序中执行此操作。注意:在编写代码时,您只需对单个复选框进行更改,而不是对所有复选框进行更改。虽然有效,但与在其中一个复选框上触发更改事件相比,这是一个不太可维护的解决方案,因为您现在需要在两个位置维护相同的代码。更好的解决方案,虽然在只需要一个复选框并且$container.cb'已经在checkBoxes变量中时,每个复选框触发一个以上的事件,但是:感谢您指出这一点。我已经更新了我的答案@GoneCodingGoodbyeI建议您将checkbox变量移到顶部并引用它。e、 g.复选框。首先。更改。这样会更好。