jQuery:选中所有复选框

时间:2010-01-18 18:57:00

标签: asp.net jquery

考虑这种情况:

  • <asp:CheckBoxList>在母版页中。
  • 目标是在页面加载时检查此列表中的所有复选框。
  • 页面上有许多复选框列表。

标记:

    <asp:CheckBoxList runat="server" ID="chkSubscriptionType" 
        DataSourceID="myDS"
        CssClass="boxes" DataTextField="Name" DataValueField="Name"  />

呈现给:

<input id="ctl00_cphContent_chkSubscriptionType_0" type="checkbox" name="ctl00$cphContent$chkSubscriptionType$0" />

问题:如何使用jQuery检查asp:CheckBoxList上此document.ready的所有框?我到处都看到样本,但母版页使用的命名约定会抛弃其他地方的样本。

3 个答案:

答案 0 :(得分:6)

正如您所提到的,由于命名容器,ID将自动生成并搞砸。您可以使用属性过滤器来选择包含您知道的部分的所有元素,即“chkSubscriptionType”。例如:

$("input[id*=chkSubscriptionType]").attr("checked", "checked");

* =表示“contains”。

答案 1 :(得分:4)

ASP.NET的命名约定有点令人沮丧。您可以通过将元素包装在跨度中并为其赋予类来使它们侧向移动。然后,您可以使用该span.class来聚焦您的选择器:

$(function(){
  // On dom-ready, all checkboxes in span.names will be checked
  $("span.names :checkbox").attr("checked", "checked");
});

<span class="names">
  <asp:CheckBoxList ... />
</span>

答案 2 :(得分:3)

无论是asp / php / ruby​​等,您都应该能够做到:

$(document).ready(function(){ 
      $("input[type=checkbox]").attr("checked", "checked");
});