js中checkbox长度为undefinde如何解决以及取checkbox有多少被选中

来源:互联网 发布:四三九九网络股份 编辑:程序博客网 时间:2024/04/28 17:43

当checkbox的内容为一项时,用javascript获取它长度时为undefined的解决办法,非常简单 如下:
首先了解下CheckBox(多选框):
当页面中有多个CheckBox的时候,它是一个数组,而单个的时候,它就是一个对象。
可以直接用


document.getElementsByName("checkboxname");
var obj=document.getElementsByName("checkboxname");
for(var i=0;i< obj.length;i++){
    alert(obj );
    alert(obj .checked);
}
多个的时候,是对象数组,
单个的时候,是一个对象,不是数组,用.length就不行了,上面的方法当它一个或多个时都可以正常使用。

取checkbox有多少被选中
objcheckbox = document.getElementsByName("groupid");
    for(var i=0;i<objcheckbox.length;i++){
     if(objcheckbox.checked){
      strid = objcheckbox.value;
      flag++;
     }
    }
    if(flag!=1){
     alert("不允许多选或不选!");
    }else{
     if(confirm("修改栏目,是否继续?")){
      document.optionform.ids.value=strid;
      document.optionform.action = "group!add.do";
      document.optionform.submit();
     }
    }

--------------------------------------------------------------------------------js获取已选中的checkbox所在行的其他列的值


//通过table的id获取已选中checkbox的当前行第n列的值,并组合成字符串返回
function getTDText1(tableId, chkName, n) {
var rows = $(tableId).rows;
var objs = document.getElementsByName(chkName);
var temp = "";
for (var i = 0; i < objs.length; i++) {
if (objs.checked) {
var r = objs.parentElement.parentElement.rowIndex;
if (temp == "") {
temp = rows.cells[n].innerText; } else {
temp += "," + rows.cells[n].innerText; }
}
}
return temp;
}
 
//通过已选中checkbox的id获取当前行第n列的值,并组合成字符串返回
function getTDText2(chkId, n) {
var temp = "";
var ids = chkId.split(",");
for (var i = 0; i < ids.length; i++) {
var tr = $(ids).parentElement.parentElement;
if (temp == "") {
temp = tr.cells[n].innerText;
} else {
temp += "," + tr.cells[n].innerText;
}
}
return temp;
}
0 0