选择/取消选择全部对单个记录不起作用

Select/DeSelect All doesnt work for single record

本文关键字:选择 记录 不起作用 单个 全部 取消      更新时间:2023-09-26

我有一个javascript如下:

if (document.forms[0].Check_All.value=="Select All") {
    for (i = 0; i < chk.length; i++) {
            chk[i].checked = true;
            document.forms[0].Check_All.value = "DeSelect All";                
    }
} else {
    for (i = 0; i < chk.length; i++) {
        chk[i].checked = false;
        document.forms[0].Check_All.value = "Select All";
    }
}

用于选择和取消选择复选框。当chk.length == 2及以上时工作良好。然而,当我只有一个记录chk.lengthundefined,它不会工作。猜猜为什么?

这是因为当只有一个表单元素具有指定的名称时,您可以直接访问该元素,而有更多具有相同名称的元素时,您将获得一个集合。

在这种简单的情况下,你可以使用 来解决这个问题。
if(chk.length == undefined) {
  chk = new Array(chk);
}

如果它之前不是一个集合,之后chk将是一个数组-其行为类似于一个集合,至少在你可以访问它的长度属性和访问它的(一个)元素与数字索引的方式。

您可以使用JQuery函数来选中所有的复选框

$("input :checkbox").each(function(){
    $(this).prop('checked', true);
});
相关文章: