事件函数未正确显示动态表-使用rowindex出现问题

时间:2019-01-20 11:19:07

标签: javascript

var T_No = "";
  var T_Name = "";
  var T_Mean = "";
  var T_value = "";

  var data_t_info = {
  T1_No: "Row_1",
  T1_T_Name: "8",
  T1_Mean: "089",
  T1_value:"2",
  T2_No: "Row_2",
  T2_T_Name: "90",
  T2_Mean: "78",
  T2_value:"1" 
  }

  var T1_info = [
    {
        "T1_One": "2",
        "T1_Two": "3",
        "T1_Three": "1",
        "T1_Four": "324"            
    },
    {
        "T1_One": "3",
        "T1_Two": "0",
        "T1_Three": "70",
        "T1_Four": "0"
    }
  ]

  var T2_info = [
    {
        "T2_One": "0",
        "T2_Two": "65",
        "T2_Three": "63",
        "T2_Four": "89"
    }
  ]		

  var number_of_t = 2;
  var rowIndex = 0;
  var val ="Edit";

  var myHead = new Array();    	
  myHead = ['T No','Name', 'Mean','Value',''];
  function createTable() {
        var myTable = document.createElement('table');
        myTable.setAttribute('id', 'myTable'); 
        var tr = myTable.insertRow(-1);    
        for (var h = 0; h < myHead.length; h++) {
            var th = document.createElement('th');     
            th.innerHTML = myHead[h];
            tr.appendChild(th);
    }    
        var div = document.getElementById('main_Div');
        div.appendChild(myTable);    
    if (number_of_t !=0 || number_of_t != null) {
      var mytTab = document.getElementById('myTable'); 
      for (var i= 0; i < number_of_t; i++) {
        var rowCnt = mytTab.rows.length;  

        var tr = mytTab.insertRow(rowCnt);  
        var j = i+1;
  if (typeof data_t_info["T"+(j)+"_No"] !== 'undefined') {
   var curT_No = data_t_info["T"+(j)+"_No"];
      } else {
      var curT_No = "-"
       } 
  if (typeof data_t_info["T"+(j)+"_T_Name"] !== 'undefined')         {
  var curT_T_Name = data_t_info["T"+(j)+"_T_Name"];
          } else {
            var curT_T_Name = "-"
          }
  if (typeof data_t_info["T"+(j)+"_Mean"] !== 'undefined') {
            var curT_Mean = data_t_info["T"+(j)+"_Mean"];
          } else {
            var curT_Mean = "-"
          }
          if (typeof data_t_info["T"+(j)+"_value"] !== 'undefined') {
            var curT_value = data_t_info["T"+(j)+"_value"];
          } else {
            var curT_value = "-"
          }
          var T_No = curT_No;
          var T_Name = curT_T_Name
          var T_Mean = curT_Mean;
          var T_value = curT_value;

      if ((val !== "Create") && (val === "Edit")) {
        var create_dyn_table = "create_dyn_table"+ j;
        }
        else {
          var create_dyn_table = "create_dyn_table"+ rowCnt;
        }

        var create_dyn_table = window[create_dyn_table];						
          for (var c = 0; c < myHead.length; c++) {
          var td = document.createElement('td');       
          td = tr.insertCell(c);    
          if (c == 0) {
            var ele = document.createElement('input');
            ele.setAttribute('type', 'text');
             ele.setAttribute('value', T_No);
            ele.setAttribute('name', 't_no');    
            td.appendChild(ele);
          }
          else if (c == 1) {
            var ele = document.createElement('input');
            ele.setAttribute('type', 'text');
            ele.setAttribute('value', T_Name);
            td.appendChild(ele);
          }
          else if (c == 2) {
            var ele = document.createElement('input');
            ele.setAttribute('type', 'text');
             ele.setAttribute('type', 'text');
            ele.setAttribute('value', T_Mean);
            td.appendChild(ele);
          }
          else if (c == 3) {
            var ele = document.createElement('input');
            ele.setAttribute('type', 'text');
             ele.setAttribute('type', 'text');
            ele.setAttribute('value', T_value);

            ele.addEventListener('change', function (event) { create_dyn_table(event.target.value) }.bind(create_dyn_table) );
            td.appendChild(ele);
          }
          else if (c == 4) {         
            var button = document.createElement('input');
            button.setAttribute('type', 'button');
             button.setAttribute('value', 'Remove');

            button.setAttribute('onclick', 'removeRow(this)');

            td.appendChild(button);
          }
        }
      }
    }
  }

    function addRow(val) {
  var val = val;
        var mytraitTab = document.getElementById('myTable');    	
        var rowCnt = mytraitTab.rows.length;    
    var tr = mytraitTab.insertRow(rowCnt);    

    if ((val !== "Create") && (val === "Edit")) {
        var create_dyn_table = "create_dyn_table"+ rowIndex;
        }
        else {
        var create_dyn_table = "create_dyn_table"+ rowCnt;
        }

  var create_dyn_table = window[create_dyn_table];

    var T_No = "Row_"+rowCnt;    		
        for (var c = 0; c < myHead.length; c++) {
            var td = document.createElement('td');       
            td = tr.insertCell(c);    
            if (c == 0) {
                var ele = document.createElement('input');
                ele.setAttribute('type', 'text');
                 ele.setAttribute('value', T_No);
        ele.setAttribute('readonly', true);
        ele.setAttribute('name', 't_no');    
                td.appendChild(ele);
            }
      else if (c == 1) {
                var ele = document.createElement('input');
                ele.setAttribute('type', 'text');
                ele.setAttribute('value', T_Name);
                td.appendChild(ele);
            }
      else if (c == 2) {
                var ele = document.createElement('input');
                ele.setAttribute('type', 'text');
      ele.setAttribute('value', T_Mean);
                td.appendChild(ele);
    }
    else if (c == 3) {
                var ele = document.createElement('input');
                ele.setAttribute('type', 'text');
      ele.setAttribute('value', T_value);
      ele.setAttribute('name', 't_value');
      ele.setAttribute('id', 't_value');

      ele.addEventListener('change', function (event) { create_dyn_table(event.target.value) }.bind(create_dyn_table) );

                td.appendChild(ele);
            }
      else if (c == 4) {         
                var button = document.createElement('input');
                button.setAttribute('type', 'button');
               button.setAttribute('value', 'Remove');

                button.setAttribute('onclick', 'removeRow(this)');

                td.appendChild(button);
            }

        }
    }    


    function removeRow(button) {
        var myTab = document.getElementById('myTable');
        myTab.deleteRow(button.parentNode.parentNode.rowIndex);

        [].slice.call(myTab.rows).map(
             function (item,index) {  
                if (item.firstChild.firstChild.nodeType == 1) {
                    item.firstChild.firstChild.value = "Row_" + index
                };
                return true; 
             });
    }

 
  function create_dyn_table1(val) {
  var curTVal = val;
    var root = document.getElementById("T1_Div");
    var table = document.createElement('table');
    var tblB = document.createElement('tbody');
    table.appendChild(tblB);

    var rowcnt = val;

    headerList = ["Row_1:One", "Two", "Threee", "Four"];

    var tr = document.createElement('tr');			  

     // Header row			   
      for (var j = 0; j < 4; j++) {
      var th = document.createElement('th'); //column
      var text = document.createTextNode(headerList[j]); //cell
      th.appendChild(text);
      tr.appendChild(th);
      }
    tblB.appendChild(tr);

        for (var i = 0; i < rowcnt; i++) {
        var tr = document.createElement('tr');
        tblB.appendChild(tr);
        var td = document.createElement('td');				

        var curT1Obj = T1_info;

        if ((typeof curT1Obj !== 'undefined') && (curT1Obj !== null)) {
           var T1_One = curT1Obj[i].T1_One;
           var T1_Two = curT1Obj[i].T1_Two;
           var T1_Three = curT1Obj[i].T1_Three;
           var T1_Four = curT1Obj[i].T1_Four;
        }
        else {
          var T1_One ="0";
          var T1_Two = "0";
          var T1_Three = "0";
          var T1_Four = "0";
          }	

        var curClmn = i+1;	
        var rownumber = curClmn;						

        for (var j = 0; j < 4; j++) {
          var input = document.createElement("input");
          input.type = "text";

            if (curClmn >= 1 && j == 0) {
              input.name = "T1_One" + curClmn ;
              input.value = T1_One;
              input.id = "T1_One" + curClmn;
              }
              else if (curClmn >= 1 && j == 1) {
              input.name = "T1_Two" + curClmn;
              input.value = T1_Two;
              input.id = "T1_Two" + curClmn ;
              }
              else if (curClmn >= 1 && j == 2) {
              input.name = "T1_Three" + curClmn ;
              input.value = T1_Three;
              input.id = "T1_Three" + curClmn;
              }
              else if (curClmn >= 1 && j == 3) {
              input.name = "T1_Four" + curClmn;
              input.value = T1_Four;
              input.id = "T1_Four" + curClmn ;
              }							  

          const td = document.createElement('td');
          td.appendChild(input);
          tr.appendChild(td);
        }
        }					  

    root.appendChild(table);
  }

  
  function create_dyn_table2(val) {

  var curTVal = val;

    var root = document.getElementById("T2_Div");
    var table = document.createElement('table');
    var tblB = document.createElement('tbody');
    table.appendChild(tblB);

    var rowcnt = val;

    headerList = ["Row_2:One", "Two", "Threee", "Four"];

    var tr = document.createElement('tr');

      for (var j = 0; j < 4; j++) {
      var th = document.createElement('th'); //column
      var text = document.createTextNode(headerList[j]); //cell
      th.appendChild(text);
      tr.appendChild(th);
      }
    tblB.appendChild(tr);

        for (var i = 0; i < rowcnt; i++) {
        var tr = document.createElement('tr');
        tblB.appendChild(tr);
        var td = document.createElement('td');				

        var curT2Obj = T2_info;

        if ((typeof curT2Obj !== 'undefined') && (curT2Obj !== null)) {
           var T2_One = curT2Obj[i].T2_One;
           var T2_Two = curT2Obj[i].T2_Two;
           var T2_Three = curT2Obj[i].T2_Three;
           var T2_Four = curT2Obj[i].T2_Four;
        }
        else {
          var T2_One ="0";
          var T2_Two = "0";
          var T2_Three = "0";
          var T2_Four = "0";
          }	

        var curClmn = i+1;	
        var rownumber = curClmn;						

        for (var j = 0; j < 4; j++) {
          var input = document.createElement("input");
          input.type = "text";

            if (curClmn >= 1 && j == 0) {
              input.name = "T2_One" + curClmn ;
              input.value = T2_One;
              input.id = "T2_One" + curClmn;
              }
              else if (curClmn >= 1 && j == 1) {
              input.name = "T2_Two" + curClmn;
              input.value = T2_Two;
              input.id = "T2_Two" + curClmn ;
              }
              else if (curClmn >= 1 && j == 2) {
              input.name = "T2_Three" + curClmn ;
              input.value = T2_Three;
              input.id = "T2_Three" + curClmn;
              }
              else if (curClmn >= 1 && j == 3) {
              input.name = "T2_Four" + curClmn;
              input.value = T2_Four;
              input.id = "T2_Four" + curClmn ;
              }							  

          const td = document.createElement('td');
          td.appendChild(input);
          tr.appendChild(td);
        }
        }					  

    root.appendChild(table);
  }


   function create_dyn_table3(val) {

  var curTVal = val;

    var root = document.getElementById("T3_Div");
    var table = document.createElement('table');
    var tblB = document.createElement('tbody');
    table.appendChild(tblB);

    var rowcnt = val;

    headerList = ["Row_3:One", "Two", "Threee", "Four"];
    var tr = document.createElement('tr');


      for (var j = 0; j < 4; j++) {
      var th = document.createElement('th'); //column
      var text = document.createTextNode(headerList[j]); //cell
      th.appendChild(text);
      tr.appendChild(th);
      }
    tblB.appendChild(tr);

        for (var i = 0; i < rowcnt; i++) {
        var tr = document.createElement('tr');
        tblB.appendChild(tr);
        var td = document.createElement('td');				

        var curT3Obj = null;

        if ((typeof curT3Obj !== 'undefined') && (curT3Obj !== null)) {
           var T3_One = curT3Obj[i].T3_One;
           var T3_Two = curT3Obj[i].T3_Two;
           var T3_Three = curT3Obj[i].T3_Three;
           var T3_Four = curT3Obj[i].T3_Four;
        }
        else {
          var T3_One ="0";
          var T3_Two = "0";
          var T3_Three = "0";
          var T3_Four = "0";
          }	

        var curClmn = i+1;	
        var rownumber = curClmn;						

        for (var j = 0; j < 4; j++) {
          var input = document.createElement("input");
          input.type = "text";

            if (curClmn >= 1 && j == 0) {
              input.name = "T3_One" + curClmn ;
              input.value = T3_One;
              input.id = "T3_One" + curClmn;
              }
              else if (curClmn >= 1 && j == 1) {
              input.name = "T3_Two" + curClmn;
              input.value = T3_Two;
              input.id = "T3_Two" + curClmn ;
              }
              else if (curClmn >= 1 && j == 2) {
              input.name = "T3_Three" + curClmn ;
              input.value = T3_Three;
              input.id = "T3_Three" + curClmn;
              }
              else if (curClmn >= 1 && j == 3) {
              input.name = "T3_Four" + curClmn;
              input.value = T3_Four;
              input.id = "T3_Four" + curClmn ;
              }							  

          const td = document.createElement('td');
          td.appendChild(input);
          tr.appendChild(td);
        }
        }					  

    root.appendChild(table);
  }

   function create_dyn_table4(val) {

  var curTVal = val;

    var root = document.getElementById("T4_Div");
    var table = document.createElement('table');
    var tblB = document.createElement('tbody');
    table.appendChild(tblB);

    var rowcnt = val;

    headerList = ["Row_4:One", "Two", "Threee", "Four"];

    var tr = document.createElement('tr');

     // Header row			   
      for (var j = 0; j < 4; j++) {
      var th = document.createElement('th'); //column
      var text = document.createTextNode(headerList[j]); //cell
      th.appendChild(text);
      tr.appendChild(th);
      }
    tblB.appendChild(tr);

        for (var i = 0; i < rowcnt; i++) {
        var tr = document.createElement('tr');
        tblB.appendChild(tr);
        var td = document.createElement('td');				

        var curT4Obj = null;

        if ((typeof curT4Obj !== 'undefined') && (curT4Obj !== null)) {
           var T4_One = curT4Obj[i].T4_One;
           var T4_Two = curT4Obj[i].T4_Two;
           var T4_Three = curT4Obj[i].T4_Three;
           var T4_Four = curT4Obj[i].T4_Four;
        }
        else {
          var T4_One ="0";
          var T4_Two = "0";
          var T4_Three = "0";
          var T4_Four = "0";
          }	

        var curClmn = i+1;	
        var rownumber = curClmn;						

        for (var j = 0; j < 4; j++) {
          var input = document.createElement("input");
          input.type = "text";

            if (curClmn >= 1 && j == 0) {
              input.name = "T4_One" + curClmn ;
              input.value = T4_One;
              input.id = "T4_One" + curClmn;
              }
              else if (curClmn >= 1 && j == 1) {
              input.name = "T4_Two" + curClmn;
              input.value = T4_Two;
              input.id = "T4_Two" + curClmn ;
              }
              else if (curClmn >= 1 && j == 2) {
              input.name = "T4_Three" + curClmn ;
              input.value = T4_Three;
              input.id = "T4_Three" + curClmn;
              }
              else if (curClmn >= 1 && j == 3) {
              input.name = "T4_Four" + curClmn;
              input.value = T4_Four;
              input.id = "T4_Four" + curClmn ;
              }							  

          const td = document.createElement('td');
          td.appendChild(input);
          tr.appendChild(td);
        }
        }					  

    root.appendChild(table);
  }
<body onload="createTable();">
     <input type="button" id="addRow" value="Add New Row" onclick="addRow('Create')" />
        <div id="main_Div"></div>
          <div class="showhide-wrapper" id = "qtlDiv" > 
            <div id="T1_Div"> </div>
            <div id="T2_Div"></div>
            <div id="T3_Div"></div>
            <div id="T4_Div"></div>
            <div id="T5_Div"></div>
          </div>
            <p><input type="button" id="bt" value="Sumbit Data" onclick="submit();" /></p>
            </div>
            </body>

事件功能在“值”列上。 单击“添加新行”->出现新行。然后在“值”列中输入任何数字,例如3-> Row_4 info出现3行 我没有从json文件填充的前3行的rowindex获得适当的事件。 带有正确行的create_dyn_table也应在onload中显示。预先感谢。

0 个答案:

没有答案