0

我有动态 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();
         }

为什么这个函数只返回循环中最后一行的最后一个选中的复选框????我需要所有行的所有选中复选框!!!!!!!

4

4 回答 4

2

假设您使用的是 jQuery。

然后你可以简单地做 -

$("#myTableId input:checked")

如果你的复选框有特定的类,那么你也可以这样做 -

$("#myTableId .specificCheckboxClass:checked")
于 2012-05-24T12:04:01.787 回答
0

在某些按钮上单击尝试执行此代码

var checkedTransactions = $("input:[name=' idofcheckboxe ']:checked").map(function () { return $(this).val(); }).get();

var 将返回选中的复选框的所有 id

于 2012-05-24T12:08:31.667 回答
0

谢谢大家解决问题:

           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();
         }
于 2012-05-26T11:48:51.627 回答
0
var table = document.getElementById("mytable");
checkbox = table.getElementsByTagName("input"); 

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

        //do something
    }   
}
于 2016-01-13T20:54:21.987 回答