gpt4 book ai didi

javascript - 用于选择由 CheckBoxFor 生成的所有复选框的复选框

转载 作者:行者123 更新时间:2023-12-03 01:00:16 26 4
gpt4 key购买 nike

我正在使用 CheckBoxFor 创建一组复选框的形式。我已向这些复选框添加了一个类,但由于 CheckBoxFor 没有将该类添加到隐藏的 false 复选框,因此我无法根据它选择这些生成的复选框组。

下面是生成的复选框表的示例。当我点击“全选”复选框(最上面的一个)时,我希望选择该列中的所有复选框。 我不想选择整个表格,只选择列enter image description here

一些相关的 HTML:

<td><input type="checkbox" name="selectAll" value="NBTC" /></td>
<td><input type="checkbox" name="selectAll" value="Contractors" /></td>
<td><input type="checkbox" name="selectAll" value="Coordinators" /></td>
<td><input type="checkbox" name="selectAll" value="NGO" /></td>
<td><input type="checkbox" name="selectAll" value="Public" /></td>

我正在使用的 CheckBoxFor 语句示例:

@Html.CheckBoxFor(m => m.NBTCGroup.NBTC_FA_Centroid, new {@class = "NBTC"}

这是我正在使用的 JS,但由于它是基于类进行选择的,因此无法选择和取消选择所有内容,因为 false 复选框没有添加类。

$(document).ready(function () {
$('input[name="selectAll"]').click(function () {
var source = $(this);
var sourceName = $(this).val();
if (sourceName == 'NBTC') {
var checkboxes = document.querySelectorAll('input[class="NBTC"]');
}
else if (sourceName == 'Contractors') {
var checkboxes = document.querySelectorAll('input[class="Contractors"]');
}
else if (sourceName == 'Coordinators') {
var checkboxes = document.querySelectorAll('input[class="Coordinators"]');
}
else if (sourceName == 'NGO') {
var checkboxes = document.querySelectorAll('input[class="NGO"]');
}
else if (sourceName == 'Public') {
var checkboxes = document.querySelectorAll('input[class="Public"]');
}
for (var i = 0; i < checkboxes.length; i++) {
if (checkboxes[i] != source)
checkboxes[i].checked = source.checked;
}
});

有人对其他方法有任何想法吗?

最佳答案

根据您的代码,我假设您正在向每组复选框添加 NBTCContractors 等类...您还有几个 selectAll 每个组的复选框。

你可以像这样改变你的 jQuery:

$('input[name="selectAll"]').click(function() {
var className = $(this).val(); // <-- get the group: NBTC, Contractors, etc
$('.' + className).prop('checked', this.checked);
// generates something like this: $('.NBTC').prop('checked', this.checked);
});

我用过this answer用于检查/取消检查逻辑。

关于javascript - 用于选择由 CheckBoxFor 生成的所有复选框的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52654761/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com