Javascript 单击“全选”后,如何取消选中以前选中的其他选定列表项?

Javascript 单击“全选”后,如何取消选中以前选中的其他选定列表项?,javascript,c#,sql,asp.net,c#-4.0,Javascript,C#,Sql,Asp.net,C# 4.0,我有这些代码,允许我在选中“全选”时禁用所有其他复选框。但是,如果我以前在选中“全选”之前选中了其他复选框,则以前选中的复选框不会被删除,而是仅在复选框仍处于选中状态时禁用。那么,在单击全选后,如何取消选中以前选中的其他选定列表项呢 <asp:CheckBoxList ID="Checkboxlist1" runat="server" Height="80px" Width="500px" AppendDataBoundItems="True" ViewStateMode="Enabled

我有这些代码,允许我在选中“全选”时禁用所有其他复选框。但是,如果我以前在选中“全选”之前选中了其他复选框,则以前选中的复选框不会被删除,而是仅在复选框仍处于选中状态时禁用。那么,在单击全选后,如何取消选中以前选中的其他选定列表项呢

<asp:CheckBoxList ID="Checkboxlist1" runat="server" Height="80px" Width="500px" AppendDataBoundItems="True" ViewStateMode="Enabled">
                    <asp:ListItem Text="Select All" Value="Select All"></asp:ListItem>
                </asp:CheckBoxList> 


  $(function () {
    $("#Checkboxlist :checkbox").change(function () {
        $("#Checkboxlist  :checkbox").click(function () {
            var ischecked = $(this).is(":checked");
            var val = $(this).val();
            //alert(val);
            if (val == "Select All") {
                if (ischecked) {                    
                    $("#Checkboxlist  :checkbox").attr('disabled', 'disabled');
                    $(this).removeAttr('disabled');
                    $(this).attr('checked', true)
                    return;
                } else {                 
                    $("#Checkboxlist  :checkbox").removeAttr('disabled');
                    return;
                }
            }
        });
    });
})
在else中,在返回之前,只需从全选中删除禁用项:

只需编辑选择器,使其不具有值为“全选”的复选框:

代码:


您可以使用Jquery not函数并将其作为参数传递,例如$Checkboxlist1:checkbox.notthis.removeAttrIsabled;你好感谢您的帮助,但似乎还有另一个问题,当我选中“全选”时,它会启用其他检查列表项;当我取消选中它时,它会禁用其他列表项,这些不应以这种方式出现,但在另一个问题中,当我选中“全选”时,它会禁用其余的复选框;当我取消选中它时,它会启用其余的检查列表项列表项。请注意,实际上您的代码逻辑是颠倒的,您只需将if块的代码放入else块,另外,将代码阻塞到if块中。嗨,我确实尝试过,但当我在检查后执行此操作时,它不再显示勾号,并且在第一次检查后检查不起作用。嗨,我已将代码更新为最新代码,但我确实意识到有一些错误需要修复。现在,当我选择all时,它会禁用rest,但是当我选中一些其他列表项并选中select all时,它会禁用rest,但不会取消选中其他列表项。在选中全选时,如何同时禁用和取消选中其他列表项?您已经在else块中执行了此操作,这里是$Checkboxlist1:checkbox.attr'checked',false;。同时检查更新的答案。
$(this).removeAttr("disabled");
$("#Checkboxlist1:checkbox[value='Select All']")
if (val == "Select All") {
    //if Select All is checked, disable all other checkboxes and uncheck them as well
    if (ischecked) {
        $("#Checkboxlist1:checkbox").attr("disabled", "disabled"); //disable all checkboxes
        $("#Checkboxlist1:checkbox").prop('checked', false);  //uncheck all checkboxes          
        $(this).prop('checked', true);  //check the "Select All" checkbox       
        return;
    }
    //enable all other checkboxes and uncheck them too
    else {
        $("#Checkboxlist1:checkbox").removeAttr("disabled"); //enable all checkboxes
        $("#Checkboxlist1:checkbox").prop('checked', false); //uncheck all checkboxes          
        $(this).prop('checked', false);  //uncheck the "Select All" checkbox
        return;
    }
}