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