如果选中/取消选中复选框,则启用/禁用按钮

ams*_*sko 2 checkbox jquery

我在表格中有多个复选框,我编写了用于选择/取消选中所有复选框以及启用/禁用按钮的代码.(选择所有复选框是列的标题)

$(function(){
   $('#SelectAll').click(function(event) {   
    if(this.checked) {
        // Iterate each checkbox
        $(':checkbox').each(function() {
            this.checked = true;                        
        });
        $('#Assign').removeAttr("disabled");
    }
    if(!this.checked) {
        // Iterate each checkbox
        $(':checkbox').each(function() {
            this.checked = false;
       });
       $('#Assign').attr("disabled","disabled");
    }
});
});
Run Code Online (Sandbox Code Playgroud)

虽然如果用户决定单独选中复选框并取消选中所有进程,我如何编写以下代码以检查是否所有这些代码都未选中并禁用该按钮

 $(function(){
$(':checkbox').click(function(event){
    if(this.checked){
        $('#Assign').removeAttr("disabled");
    }
    if(!this.checked){
        //Need to put code here to check if all of them are unchecked
           {
                 //disable the Assign button if all are unchecked by user
                 $('#Assign').attr("disabled","disabled");
               }

    }
});
});
Run Code Online (Sandbox Code Playgroud)

Aru*_*hny 8

整体功能可以简化为

$(function(){
    var checkboxes = $(':checkbox:not(#SelectAll)').click(function(event){
        $('#Assign').prop("disabled", checkboxes.filter(':checked').length == 0);
    });

    $('#SelectAll').click(function(event) {   
        checkboxes.prop('checked', this.checked);
        $('#Assign').prop("disabled", !this.checked)
    });
});
Run Code Online (Sandbox Code Playgroud)

演示:小提琴