【发布时间】:2023-03-25 10:36:01
【问题描述】:
我正在尝试在我的网站上实现一个“全部同意”复选框。
这是我目前的部分代码示例。
$("input:checkbox").each(function () {
var pos = $(this).prop("id");
var arr = pos.split("_");
var arr2 = arr[1].split("C");
if (arr2[1] == undefined) {
var arr3 = arr[1].split("W");
$(this).addClass(arr3[0]);
}
else {
$(this).addClass(arr2[0]);
}
});
$(".P2").change(function () {
var a = $(".P2:checkbox:checked");
if (a.length = 1) {
$(".P3").prop("checked", true);
$(".P4").prop("checked", true);
$(".P5").prop("checked", true);
$(".P6").prop("checked", true);
$(".P7").prop("checked", true);
$(".P8").prop("checked", true);
$(".P9").prop("checked", true);
$(".P10").prop("checked", true);
$(".P11").prop("checked", true);
}
});
<asp:CheckBox ID="P2C1" runat="server" text=" Yes to All"/>
<asp:CheckBox ID="P3C1" runat="server" text=" Yes" />
<asp:CheckBox ID="P3C2" runat="server" text=" No" />
<asp:CheckBox ID="P4C1" runat="server" text=" Yes" />
<asp:CheckBox ID="P4C2" runat="server" text=" No" />
这只是它以相同模式进行的复选框的一部分。第一个框是yes,第二个框是no。我需要将 P2 复选框实现为全部选择是,并且只有 javascript 选择最后 ID 为 C1 的复选框。目前,当检查“是”是以所有检查是(C1)和否(C2)框。我试图将代码更改为:
$(".P2").change(function () {
var a = $(".P2:checkbox:checked");
if (a.length = 1) {
$(".P3C1").prop("checked", true);
$(".P4C1").prop("checked", true);
但这不起作用,它不会选中任何框。
我知道这与顶部输入功能有关,但我不确定要更改什么。我根本不想弄乱顶部输入功能,因为其他东西都依赖它来按原样工作。
【问题讨论】:
-
您的 ID 中都没有下划线,因此无法拆分。此外,我不会在您的“全部同意”复选框上看到
P2类。 -
我不确定哪个位不起作用。但是,您依赖 ASP.NET 生成 ID,然后使用 JQuery 添加到类中。为什么不向 HTML 标记添加一个类?在添加类之前还使用
change方法。我认为这不会触发?
标签: javascript html asp.net