检查所有复选框asp.net jquery

时间:2011-10-05 07:21:01

标签: jquery asp.net

我正在使用asp.net c#jquery vs 2008

我有两个复选框列表(cbList,checkboxList1)和一个复选框(chkALL)。 当我选中复选框(chkALL)时,它应该检查复选框列表(CbList)中的所有复选框

我在jquery中使用以下代码。它无法正常工作。它检查两个复选框列表。我只需要检查一个复选框列表。任何帮助表示赞赏

<script type="text/javascript" src="jquery-1.6.4.js"></script>

 <script type="text/javascript">


               function jqCheckAll2(id, name) {

                   $("INPUT[@Name=" + name + "][type='checkbox']").attr('checked', $('#' + id).is(':checked'));

               }






       </script>


    <form id="form1" runat="server">
    <div>

      <asp:CheckBox ID="chkAll" runat="server" Text="Check All" onclick="jqCheckAll2( this.id, 'cbList' )"/><br />


    <asp:CheckBoxList ID="cbList" runat="server">
</asp:CheckBoxList>
    <asp:CheckBoxList ID="CheckBoxList1" runat="server">
</asp:CheckBoxList>
    </div>
    </form>

2 个答案:

答案 0 :(得分:1)

我无法确切地看到导致您出现问题的原因,但我可以看到您使用cbList作为服务器端名称的名称。相反,您应该使用cbList.ClientID,它是控件的唯一客户端名称。换句话说,像这样添加onclick事件方:

chkAll.Attributes["onclick"] = string.Format("jqCheckAll2(this.id, '{0}')", cbList.ClientID);

然后将jqCheckAll2更改为:

       function jqCheckAll2(id, name) {
           $("#" + name).find(":checkbox").attr('checked', $('#' + id).is(':checked'));
       }

答案 1 :(得分:0)

使用复选框选中div中所有活动复选框的全部或全部取消选中。 ClientIDMode =“ Static”只是不允许在服务器上运行时更改ID。

<asp:CheckBox ID="chkAll" runat="server" ClientIDMode="Static"/>
    <asp:Label ID="lblAll" runat="server" Text="Label" ClientIDMode="Static">Select All</asp:Label>

    $(document).ready(function() {
        $("#chkAll").on('change', function() { // on change of state        
            if (this.checked) // if changed state is "CHECKED"
            {
                $("#lblAll").text("Unselect All");
                $("#myDiv input[type=checkbox]").each(
                    function() {
                        if($(this).attr('disabled')==null)
                          $(this).prop('checked', true);
                    }
                );
            } else {
                $("#lblAll").text("Select All");
                $("#myDiv input[type=checkbox]").each(
                    function () {
                        if ($(this).attr('disabled') == null)
                           $(this).prop('checked', false);
                    }
                );
            }
        });
    });