使用jquery在转发器控件中找到嵌套的checkboxlist

使用VS 2008,我有一个带有嵌套元素的Repeater控件,并希望用jquery选择其中一个(复选框)。

  
Choose stores for upload:     <asp:Label ID="storeLbl" runat="server" Text=''>  
Choose stores for upload:    

这是我的剧本

 $('#').click( function() { //check if store was chosen from list var storeChecked = false; $('#').each(function() { if ($(this).attr('checked')) storeChecked = true; }); if (storeChecked == false) { alert("Upload is only possible if a store has been chosen from list."); return false; } 

我得到编译器错误“storeCheck在当前上下文中不是已知的名称”。

它不起作用,因为您尝试使用它的ID访问storeCheck,而storeCheck仅存在于转发器的上下文中。

你应该做的是改用class级。 所以改变:

 $('#<%= storeCheck.ClientID %>').each(function() { 

 $('.storeCheckBox').each(function() { 

您还可以将代码更改为仅检查是否存在任何带有storeCheck类的已选中复选框:

 $('#<%= uploadBtn.ClientID %>').click(function() { if($('span.storeCheck input:checked').length == 0) { alert("Upload is only possible if a store has been chosen from list."); return false; } }); 

更改了代码,因为看起来asp.net将复选框放在您提供的类的跨度内,而不是直接将其应用于复选框。

jsfiddle – http://jsfiddle.net/infernalbadger/rAVLA/1/