首页 - 技术 -  js中checkbox长度为undefinde如何解决以及取checkbox有多少被选中

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

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


document.getElementsByName("checkbox name");
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      if(objcheckbox .checked){
      strid = objcheckbox.value;
      flag++;
     }
    }
    if(flag!=1){
     alert("不允许多选或不选!");
    }else{
     if(confirm("修改栏目,是否继续?")){
      document.optionform.ids.value=strid;
      document.optionform.action = "group!www.gsm-guard.net";
      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;
}