javascript - 无法使用javascript编辑html表格

标签 javascript html

我想使用 javascript 编辑我的 html 表格的内容。单击编辑按钮时,我正在获取表单中的内容,但是当我单击保存按钮时,它不会更新该行的值,请帮助我,我们将不胜感激。

<HTML>
<HEAD>
    <TITLE> Add/Remove dynamic rows in HTML table </TITLE>
    <SCRIPT language="javascript">
        function addRow(myTable) {

            var table = document.getElementById("myTable");

            var rowCount = table.rows.length;
            var row = table.insertRow(rowCount);

            var cell1 = row.insertCell(0);
            var element1 = document.createElement("input");
            element1.type = "checkbox";
            element1.name="chkbox[]";
            cell1.appendChild(element1);

            var cell2=row.insertCell(1);
            var cell3=row.insertCell(2);
            var cell4=row.insertCell(3);
            cell2.innerHTML=document.getElementById('txtname').value;
            cell3.innerHTML=document.getElementById('txtauthor').value;
            cell4.innerHTML=document.getElementById('txtcdate').value;



        }

        function deleteRow(myTable) {
            try {
            var table = document.getElementById(myTable);
            var rowCount = table.rows.length;

            for(var i=0; i<rowCount; i++) {
                var row = table.rows[i];
                var chkbox = row.cells[0].childNodes[0];
                if(null != chkbox && true == chkbox.checked) {
                    table.deleteRow(i);
                    rowCount--;
                    i--;
                }


            }
            }catch(e) {
                alert(e);
            }
        }

        function edt(myTable) {
    try {
        var table = document.getElementById(myTable);
        var rowCount = table.rows.length;

        for(var i=1; i<rowCount; i++) {
             var row = table.rows[i];
             var chkbox = row.cells[0].childNodes[0];
             if(null != chkbox && true == chkbox.checked) {
                 document.getElementById("txtname").value = table.rows[i].cells["1"].innerHTML;
                 document.getElementById("txtauthor").value = table.rows[i].cells["2"].innerHTML;
                 document.getElementById("txtcdate").value = table.rows[i].cells["3"].innerHTML;
                 //document.getElementById("et1").value = table.rows[i].cells["4"].innerHTML;
                 //document.getElementById("ep1").value = table.rows[i].cells["5"].innerHTML;

                 document.getElementById("crw").value = i;

             }
        }
        }catch(e) {
            alert(e);
        }
}
function savedit(myTable){
if(null != chkbox && true == chkbox.checked) {

var table = document.getElementById("myTable");

            var rowCount = table.rows.length;
            var row = table.insertRow(rowCount);

            var cell1 = row.insertCell(0);
            var element1 = document.createElement("input");
            element1.type = "checkbox";
            element1.name="chkbox[]";
            cell1.appendChild(element1);

            var cell2=row.insertCell(1);
            var cell3=row.insertCell(2);
            var cell4=row.insertCell(3);
            cell2.innerHTML=document.getElementById('txtname').value;
            cell3.innerHTML=document.getElementById('txtauthor').value;
            cell4.innerHTML=document.getElementById('txtcdate').value;
}


}




    </SCRIPT>
</HEAD>

HTML

<BODY>

    <INPUT type="button" value="Add Row" onClick="addRow('myTable')" />

    <INPUT type="button" value="Delete Row" onClick="deleteRow('myTable')" />
    <INPUT type="button" value="Edit Row" onClick="edt('myTable')" />
    <INPUT type="button" value="Save" onClick="savedit('myTable')" />


   <table id="myTable" border="1">
<thead>
<th id="name"><input type="checkbox" id="chkbox" /></th>
<th id="name">Name</th>
<th id="author">Author</th>
<th id="cdate">Date</th>
</thead>

<tbody>
  <tr>
    <td><input type="checkbox" id="chkbox1" /></td>
    <td>cell 1</td>
    <td>cell 2</td>
     <td>cell 3</td>
  </tr>
  <tr>
    <td><input type="checkbox" id="chkbox2" /></td>
    <td>cell 4</td>
    <td>cell 5</td>
      <td>cell 6</td>
  </tr>
  </tbody>
</table>

<form name="create"2 style="width:80px;">
Name:<input type="text" id="txtname" /><br/>
Author<input type="text" id="txtauthor" name="txtauthor" /><br/>
Date:<input type="text" id="txtcdate" name="txtcdate" /><br/>
Content:<input type="text" id="txtcontent" name="txtcontent" style="height:80px; " />
</form>
<input type="hidden" id="crw">

</BODY>
</HTML>

最佳答案

用以下代码替换编辑功能(添加功能的反面)

 function savedit(myTable){
    var table = document.getElementById(myTable);
            var rowCount = table.rows.length;
            for(var i=1; i<rowCount; i++) {
                 var row = table.rows[i];
                 var chkbox = row.cells[0].childNodes[0];
                 if(null != chkbox && true == chkbox.checked) {
                     table.rows[i].cells["1"].innerHTML =  document.getElementById("txtname").value ;
                     table.rows[i].cells["2"].innerHTML = document.getElementById("txtauthor").value;
                    table.rows[i].cells["3"].innerHTML  =  document.getElementById("txtcdate").value ;
                     //document.getElementById("et1").value = table.rows[i].cells["4"].innerHTML;
                     //document.getElementById("ep1").value = table.rows[i].cells["5"].innerHTML;
                      document.getElementById("txtname").value = '';
                      document.getElementById("txtauthor").value    = '';
                      document.getElementById("txtcdate").value     = '' ;
                      chkbox.checked    = false;
                     document.getElementById("crw").value = i;
                 }
            }
    }

我强烈建议您使用一些已经过测试并且可以正常工作的插件或网格,例如 kendo

关于javascript - 无法使用javascript编辑html表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19230724/

相关文章:

javascript - 输入字段 - 蓝色焦点突出显示?无法摆脱?

javascript - Angular2 中的表单对话框

javascript - 创建PeerConnection失败,异常: Failed to construct 'RTCSessionDescription' : parameter 1 ('descriptionInitDict' ) is not an object

javascript - 如何从以下代码中的众多类似按钮中选择被单击的按钮?

javascript - 为什么这个函数会导致错误?

jquery - 让 IScroll 5 与 Fancybox 2 一起工作

javascript - 使用带有 Leaflet 的 WMS 弹出窗口

javascript - Node 日志记录和错误处理

html - 创建这种类型的网格

html - CSS菜单中心定位