我有一个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是未定义的,它不会工作。任何猜到为什么?
答案 0 :(得分:2)
这是因为当只有具有指定名称的表单元素时,您可以直接访问该元素,而使用更多具有相同名称的元素则可以获得集合。
您可以在类似
之类的简单情况下解决这个问题if(chk.length == undefined) {
chk = new Array(chk);
}
如果它之前不是一个集合,那么chk
将是一个数组 - 它与集合的行为类似,至少在你可以访问它的长度属性和使用数字索引访问其(一个)元素。
答案 1 :(得分:0)
您可以使用JQuery函数检查所有复选框
$("input :checkbox").each(function(){
$(this).prop('checked', true);
});