【发布时间】:2015-05-12 07:23:01
【问题描述】:
<asp:DataList runat="server" ID="dl1" OnItemDataBound="cb1">
<ItemTemplate>
<div style="display: table;">
<div style="display: table-row;">
<div style="display: table-cell;">
<asp:CheckBox ID="Cb1" runat="server"/></div>
<div style="display: table-cell;">
<asp:CheckBox ID="cb2" runat="server" /></div>
</div>
</div>
</ItemTemplate>
</asp:DataList>
在这里,我想要一个 jquery/javascript,如果我选择 cb1,则应自动选择 cb2,反之亦然。
我正在尝试这个:但是任何人都可以帮助我。
<script type="text/javascript">
var d1Control = document.getElementById('<%= dl1.ClientID %>');
$('input:checkbox[id$=cb1]', d1Control ).click(function (e) {
if (this.checked) {
$('input:checkbox[id$=cb2]', d1Control ).attr('checked', true);
}
else {
$('input:checkbox[id$=cb2]', d1Control ).removeAttr('checked');
}
});
</script>
【问题讨论】:
-
你的代码有什么问题?
-
我不太确定,但您可以尝试使用
$(this).attr("checked")作为条件(this可能不指向复选框,实际上指向document)。此外,它可能与click事件和checked状态更改如何相互定时有关。 -
@Mouser 我的代码选择了所有复选框,而不是它在数据列表中对应的复选框。
-
您不能在Repeater 控件中使用ID,除非您使它们动态化以使其对文档唯一。此外,您应该使用
prop,而不是attr来设置布尔属性,例如checked和disabled。
标签: javascript c# jquery asp.net datalist