考虑这种情况:
<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
的所有框?我到处都看到样本,但母版页使用的命名约定会抛弃其他地方的样本。
答案 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");
});