我正在使用asp.net c#jquery vs 2008
我有两个复选框列表(cbList,checkboxList1)和一个复选框(chkALL)。 当我选中复选框(chkALL)时,它应该检查复选框列表(CbList)中的所有复选框
我在jquery中使用以下代码。它无法正常工作。它检查两个复选框列表。我只需要检查一个复选框列表。任何帮助表示赞赏
<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>
答案 0 :(得分: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'));
}
答案 1 :(得分:0)
使用复选框选中div中所有活动复选框的全部或全部取消选中。 ClientIDMode =“ Static”只是不允许在服务器上运行时更改ID。
<asp:CheckBox ID="chkAll" runat="server" ClientIDMode="Static"/>
<asp:Label ID="lblAll" runat="server" Text="Label" ClientIDMode="Static">Select All</asp:Label>
$(document).ready(function() {
$("#chkAll").on('change', function() { // on change of state
if (this.checked) // if changed state is "CHECKED"
{
$("#lblAll").text("Unselect All");
$("#myDiv input[type=checkbox]").each(
function() {
if($(this).attr('disabled')==null)
$(this).prop('checked', true);
}
);
} else {
$("#lblAll").text("Select All");
$("#myDiv input[type=checkbox]").each(
function () {
if ($(this).attr('disabled') == null)
$(this).prop('checked', false);
}
);
}
});
});