【问题标题】:how to get checkbox from multiple cells in html table?如何从html表格中的多个单元格中获取复选框?
【发布时间】:2016-01-14 04:54:21
【问题描述】:

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

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

【问题讨论】:

    标签: javascript asp.net vb.net


    【解决方案1】:

    假设您使用的是 jQuery。

    那么你可以简单地做-

    $("#myTableId input:checked")
    

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

    $("#myTableId .specificCheckboxClass:checked")
    

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 由于我不知道复选框的 ID,我如何使用循环来使用它?所以我需要对每一行中的每个单元格进行循环并获取每个元素的复选框 id!!!!
      • 不需要ID。如果你正在上课,你也可以使用 var checkedTransactions = $("input:[class='classname']:checked").map(function () { return $(this).val(); }).get ();如果此信息对您有用,请投票支持此答案
      【解决方案3】:

      感谢我解决了这个问题:

                 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();
               }
      

      【讨论】:

        【解决方案4】:
        var table = document.getElementById("mytable");
        checkbox = table.getElementsByTagName("input"); 
        
        for(var indexCheckbox = 1; indexCheckbox<checkbox.length; indexCheckbox++){
            if(checkbox[indexCheckbox].checked){
        
                //do something
            }   
        }
        

        【讨论】:

        • 请给你的答案添加一些解释!
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-28
        相关资源
        最近更新 更多