2011-10-05 143 views
0

我使用asp.net C#jquery的VS 2008检查所有复选框asp.net jquery的

我有两个复选框列表(cblist中,checkboxList1)和一个复选框(chkALL)。 当我选中复选框(chkALL),则应检查复选框列表中的所有复选框(cblist中)

我使用jquery.It下面的代码是不工作properly.It检查两个复选框list.I需要只检查一个复选框列表。任何帮助表示赞赏

<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> 

回答

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')); 
     }