1. 程式人生 > >js中checkbox長度為undefinde如何解決以及取checkbox有多少被選中

js中checkbox長度為undefinde如何解決以及取checkbox有多少被選中

 當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;
}