2011-10-05 95 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')); 
     }