2012-05-24 69 views
0

我有動態的html表,每個單元格都有一個複選框。如果用戶從不同行中的多個複選框中選擇,我想獲取選中的複選框。如何從html表格中的多個單元格獲取複選框?

function GetAllChecked() { 
      var chkedshid = new Array(); 
      var rows = new Array(); 
      rows = document.getElementById("Tbl_Id").getElementsByTagName("tr"); 
      trcount = rows.length; 

      for (var i = 0; i < rows.length; i++) { 
       trid = rows[i].id; 
       chkedshid = chkedshid + chkedshid 
       if (inputList = document.getElementById(trid).getElementsByTagName("input")) { 
        for (var n = 0; n < inputList.length; n++) { 
         if (inputList[n].type == "checkbox") { 
          if (inputList[n].checked == true) { 
           chkedshid[n] = inputList[n].id; 

          } 
         } 
        } 
       } 
    } 
      document.getElementById('Hidden_CellSelected').value = chkedshid.join(); 
      document.getElementById("BtnSav2Cart").click(); 
     } 

爲什麼爲什麼這個函數返回在循環最後一排剛剛過去的選擇複選框???? 我需要所有行的所有選中複選框!!!!!!!

+1

請張貼一些代碼 – David

+0

安置自己的HTML,請 – verisimilitude

回答

0

感謝所有的複選框全部ID我解決這個問題:

  function GetAllChecked() { 
      var chkedshid = new Array(); 
      var rows = new Array(); 
      rows = document.getElementById("Tbl_Id").getElementsByTagName("tr"); 
      trcount = rows.length; 

        var totlchk = new Array();  
      for (var i = 0; i < rows.length; i++) { 
       trid = rows[i].id; 


       if (inputList = document.getElementById(trid).getElementsByTagName("input")) { 
        for (var n = 0; n < inputList.length; n++) { 
         if (inputList[n].type == "checkbox") { 
          if (inputList[n].checked == true) { 
           chkedshid[n] = inputList[n].id; 
          } 
         } 
        } 
        totlchk = totlchk.concat(chkedshid.join()); 
       } 

      } 

      document.getElementById('myHiddenfield').value = totlchk.join(); 
      document.getElementById("BtnSav2Cart").click(); 
     } 
2

假設您使用的是jQuery。

然後,你可以簡單地做 -

$("#myTableId input:checked") 

如果複選框有特定的類,那麼你也可以做 -

$("#myTableId .specificCheckboxClass:checked") 
0

在某些按鈕單擊嘗試執行此代碼

變種checkedTransactions = $(「input:[name ='idofcheckboxe']:checked」)。map(function(){ return $(th是).VAL(); })。get();

VAR將返回被選擇

+0

怎麼能我使用它通過使用循環,因爲我不知道複選框的ID?所以我需要爲每一行中的每個單元格做循環,並獲得每個元素複選框ID! –

+0

不需要身份證。如果你有類,你也可以使用var checkedTransactions = $(「input:[class ='classname']:checked」)。map(function(){return $(this).val();})。get ();如果這個信息對你有用,請爲此回答投票 –

0
var table = document.getElementById("mytable"); 
checkbox = table.getElementsByTagName("input"); 

for(var indexCheckbox = 1; indexCheckbox<checkbox.length; indexCheckbox++){ 
    if(checkbox[indexCheckbox].checked){ 

     //do something 
    } 
} 
+0

請給你的答案添加一些解釋! –

相關問題