【发布时间】:2015-09-23 12:44:57
【问题描述】:
您好,我急需帮助,这篇文章可能看起来与上一篇文章相似,但代码的方法和要求完全不同。
我有一个复选框列表,其中 2 个复选框列表项是使用存储过程填充的。但是我在复选框列表中添加了一个“全选”列表项。
1.当使用javascript或C# onchanged事件或jquery检查“全选”时,如何禁用所有其他复选框列表项(但使用外部javascript文件而不是放入aspx文件本身)?强>
与
2。如果使用 javascript 或 C# onchanged 事件或 jquery(但使用外部 javascript 文件而不是放入 aspx 文件本身)检查复选框 1 中的特定列表项,我如何编写代码以禁用/启用某些复选框项?
例如,在 checkboxlist1 中,颜色、食物和饮料也填充了全选,在 checkboxlist2 中,填充了红色、蓝色、绿色、鸡肉、菠菜、可乐和果汁。
在第一个示例场景中,我检查了颜色和食物,因此我如何编写代码以仅在 checkboxlist2 中启用红色、蓝色、绿色、鸡肉和菠菜,或者在第二个示例场景中,我仅在 checkboxlist1 中检查了饮料,因此它应该只启用可乐和果汁应该禁用其余列表项。
3.如何将我的脚本放在 js.file 中,而不是作为脚本放在头文件中,而不会收到 $undefined 错误或未找到 form1 id 的运行时错误?
ASPX
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<html>
<head runat="server">
<Script>
$(document).ready(function () {
var checked = false;
$('#<%=Checkboxlist1.ClientID%> input:checkbox').click(function () {
var currentIdone = 'Select All';
var currentId = $(this).next().html();
if (currentId == currentIdone) {
if (checked) {
$("#<%=Checkboxlist1.ClientID%> input").removeAttr('disabled');
checked = false;
return;
}
else {
$("#<%=Checkboxlist1.ClientID%> input").attr('checked', false);
$(this).attr('checked', true);
$('#<%=Checkboxlist1.ClientID%> input:not(:checked)').attr('disabled', 'disabled');
checked = true;
}
}
});
});
$(document).ready(function () {
var checked = false;
$('#<%=Checkboxlist2.ClientID%> input:checkbox').click(function () {
var currentIdone = 'Select All';
var currentId = $(this).next().html();
if (currentId == currentIdone) {
if (checked) {
$("#<%=Checkboxlist2.ClientID%> input").removeAttr('disabled');
checked = false;
return;
}
else {
$("#<%=Checkboxlist2.ClientID%> input").attr('checked', false);
$(this).attr('checked', true);
$('#<%=Checkboxlist2.ClientID%> input:not(:checked)').attr('disabled', 'disabled');
checked = true;
}
}
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:CheckBoxList ID="Checkboxlist1" runat="server" Height="80px" Width="500px" AppendDataBoundItems="True" ViewStateMode="Enabled">
<asp:ListItem Text="Select All" Value="Select All"></asp:ListItem>
</asp:CheckBoxList>
<asp:CheckBoxList ID="Checkboxlist2" runat="server" Height="80px" Width="500px" AppendDataBoundItems="True" ViewStateMode="Enabled">
<asp:ListItem Text="Select All" Value="Select All"></asp:ListItem>
</asp:CheckBoxList>
</form>
</body>
</html>
【问题讨论】:
-
我们也很想帮助你,但你还没有发布你的努力:P
-
您好,不知道为什么之前没有显示代码,但对其进行了编辑。请看一下:)
-
您是否尝试将复选框本身作为参数传递给外部 javascript 方法?
-
@newtoasp 你的意思是在
Checkboxlist1中选择 selectall 时应该只禁用checkboxlist1中的所有项目吧? -
@john paul,是的,我确实将它链接到外部 java 脚本,但它返回错误
标签: javascript asp.net c#-4.0