【发布时间】:2026-02-17 07:30:01
【问题描述】:
给定一个值数组,我希望我的代码禁用与该值相关的所有元素(复选框),并取消选中之前选中的任何它禁用的元素。最初我的代码只是禁用了它们并没有取消选中它们:
function allow(j, extended){
$('[id^="'+j+'_extended_"]').attr('disabled', 'disabled');
for (var k = 0; k < extended.length; k++) {
$("#"+j+"_extended_"+extended[k]).attr("disabled", ""); //IE
$("#"+j+"_extended_"+extended[k]).removeAttr('disabled'); //Other Browers
}
}
但是,这将首先禁用每个元素,然后重新启用允许的元素。这不适用于检查/取消检查,因为它不应该检查新的,而只取消选中那些不再允许的。取消选中最后被禁用的那些,而让其他人保持选中/未选中的最佳方法是什么?
感谢您的宝贵时间!
【问题讨论】:
-
这个函数的参数是什么?
-
@SamuelEdwinWard 似乎 j 是一个 id 前缀,而 extended 是数组。但他想要什么?
-
我认为他想取消选中数组中的某个复选框
-
参数是 j ,它只是一个索引,而扩展是一个允许的数字数组。因此,复选框元素的格式为 7_extended_456,其中 7 仅表示表中的行(您可以忽略该部分),而 456 是允许或不允许的特定“扩展”。不要担心扩展是什么意思,它只是一个标签。数组将类似于 [456,123,352]。如果是这种情况,则应启用复选框 7_extended_456 并检查是否存在。但是,应该禁用和取消选中 7_extended_898。
-
抱歉,我的问题不是很清楚。
标签: javascript jquery checkbox