选择/取消选择全部不适用于单个记录

时间:2013-04-15 15:37:13

标签: javascript html jsp

我有一个javascipt如下:

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及以上时,它工作正常。但是,当我只有1个记录chk.length是未定义的,它不会工作。任何猜到为什么?

2 个答案:

答案 0 :(得分:2)

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

您可以在类似

之类的简单情况下解决这个问题
if(chk.length == undefined) {
  chk = new Array(chk);
}

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

答案 1 :(得分:0)

您可以使用JQuery函数检查所有复选框

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