你的位置:首页 > Java教程

[Java教程]JS实现动态生成表格并向后端提交表格数据(一)


  前段时间开发了一些web应用,其中就有涉及到动态的表格问题,因为很久没有写web前端了,所以在网上找了一些资料,发现很零碎,于是自己就根据找到的资料写了这么一个小功能,主要是供自己记忆,如果能帮到你很荣幸,如果你有更好的方法,也可以相互讨论,相互学习一下。

  先来看一下需求:在web页面上动态的生成表格,并可以对表格中的数据进行编辑,然后把表格中的数据提交至后端服务器保存。

  那么我们首先需要解决的是动态生成表格的问题

  1.首先我们需要导入JS库文件。

1 <script src="../js/jqui/jquery/jquery-1.5.2.min.js" type="text/javascript"></script>

  2.然后在页面div中事先创建一个空白表格,可以根据需求而定,我这里是一个带表头的表格

<table border="0" style="text-align: center;" width="100%" id="myTable">
<tr> <td width="150px;">表头1</td> <td width="150px;">表头2</td> <td width="150px;">表头3</td> <td width="150px;">表头4</td> <td width="150px;">表头5</td> <td width="150px;">操作</td> </tr></table>

  3.表格创建好后,我们就可以写动态生成表格的关键代码了。我们写一个js方法供触发使用

var num = 0;  function addTable(){    var tableHtml ="";    tableHtml += '<tr id="tr'+num+'">'         +'<td><input id="cnashu1'+num+'" type="text" name="cnashu1" /></td>'         +'<td><input id="cnashu2'+num+'" type="text" name="cnashu2"/></td>'         +'<td><input id="cnashu3'+num+'" type="text" name="cnashu3"/></td>'         +'<td><input id="cnashu4'+num+'" type="text" name="cnashu4"/></td>'         +'<td><input id="cnashu5'+num+'" type="text" name="cnashu5"/></td>'         +'<td><a onclick="removeTr('+num+')">删除</a>'           +'<a id="edit'+num+'"  onclick="editDataByOne('+num+')">修改</a>'           +'<a id="save'+num+'"  onclick="saveByOne('+num+')">保存</a>'         +'</td>'         +'</tr>';        var elements = $("#myTable").children().length;  //表示id为“mtTable”的标签下的子标签的个数        $("#myTable").children().eq(elements - 1).after(tableHtml); //在表头之后添加空白行    num++;     }

我们可以看到在<tb>标签中我们添加了<input>标签,主要是用来提供用户输入参数, 而全局变量num,主要是用来区分每一个添加的参数的id的唯一性而存在的。

  4.接下来我们对表格进行操作

//删除行function removeTr(trNum){  $("#tr"+trNum).remove();}//编辑行function editDataByOne(trNum){  $this = $("#tr"+trNum);  $(".addtd",$this).removeAttr("readonly");}//保存行function saveByOne(trNum){  $this = $("#tr"+trNum);  $(".addtd",$this).attr("readonly","readonly");}

上面我们对表格进行了删除,编辑,保存等操作,具体操作内容可以根据需求调整。(其实后来我发现可以不需要全局num,也可以实现对添加行的操作,至于怎么实现,主要是一些js的操作,有空再研究吧)

至此,我们动态生成表格的页面代码就完结了。

参考资料:jquery API  http://jquery.cuishifeng.cn/index.html