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 class="addtd" id="cnashu1‘+num+‘" style="width:150px;" type="text" name="cnashu1" /></td>‘
                 +‘<td><input class="addtd" id="cnashu2‘+num+‘" style="width:150px;" type="text" name="cnashu2"/></td>‘
                 +‘<td><input class="addtd" id="cnashu3‘+num+‘" style="width:150px;" type="text" name="cnashu3"/></td>‘
                 +‘<td><input class="addtd" id="cnashu4‘+num+‘" style="width:150px;" type="text" name="cnashu4"/></td>‘
                 +‘<td><input class="addtd" id="cnashu5‘+num+‘" style="width:150px;" type="text" name="cnashu5"/></td>‘
                 +‘<td><a style="cursor: pointer; color: blue;" onclick="removeTr(‘+num+‘)">删除</a>‘
                     +‘<a id="edit‘+num+‘" class="edit" style="cursor: pointer; color: blue;" onclick="editDataByOne(‘+num+‘)">修改</a>‘
                     +‘<a id="save‘+num+‘" class="hide" style="cursor: pointer; color: blue;" 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

  

 

   

时间: 2024-12-04 23:00:38

JS实现动态生成表格并向后端提交表格数据(一)的相关文章

JS实现动态生成表格并提交表格数据向后端 表格中数据转为json

原文地址 需求:在web页面上动态的生成表格,并可以对表格中的数据进行编辑,然后把表格中的数据提交至后端服务器保存. 首先动态生成表格. 1.首先我们需要导入JS库文件.jQuery 2.然后在页面div中事先创建一个空白表格,可以根据需求而定,我这里是一个带表头的表格 <table border="0" style="text-align: center;" width="100%" id="myTable">

如何用js为动态生成的元素绑定事件

今天在开发项目的时候,需要为用js动态生成的元素绑定一个click事件,但是在页面加载之前,这个元素不存在,没法获取这个元素,然后为其添加事件.查阅jquery api 发现可以用on()事件(注意:新版本的jquery已经把live()去除,现在用on()),为动态生产的元素绑定事件,然后触发该事件执行.比如下面一个例子: 假设我们要给div动态添加的span绑定click事件形成如下结果 x //做法如下: ("#choose_result").on("click&quo

element-UI,根据后台数据、动态生成el-checkbox-group,点击提交获取绑定checked项以及实现显示默认checked项

<template> <div id="Demo"> <el-form ref="form" label-width="100px"> <el-form-item label="设备名称"> <div class="check-group" v-for="(item, index) in equipments" :key="

JS代码动态生成遮罩层、蒙层

//父层级设置显示样式 document.getElementById("maskDiv").style.display = 'block'; //子节点设置样式var mask = document.createElement('div'); mask.id = 'maskDiv'; mask.style.width = window.innerWidth +'px'; mask.style.height = window.innerHeight +'px'; mask.style.

js动态生成数据列表

我们通常会使用table标签来展示数据内容,由于需要展示的数据内容是随时更换的,所以不可能将展示的数据列表写死在html写死在页面中,而是需要我们根据后台传来的数据随时更换,这个时候就需要我们使用js来动态生成表格. 首先我们需要先写好页面的样式. html部分 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; chars

用js动态生成css代码

有时候我们需要利用js来动态生成页面上style标签中的css代码,方法很直接,就是直接创建一个style元素,然后设置style元素里面的css代码,最后把它插入到head元素中.但有些兼容性问题我们需要解决.首先在符合w3c标准的浏览器中我们只需要把要插入的css代码作为一个文本节点插入到style元素中即可,而在IE中则需要利用style元素的styleSheet.cssText来解决.还需要注意的就是在有些版本IE中一个页面上style标签数量是有限制的,如果超过了会报错,需要考虑这点.

js动态生成css代码

用js动态生成css代码 有时候我们需要利用js来动态生成页面上style标签中的css代码,方法很直接,就是直接创建一个style元素,然后设置style元素里面的css代码,最后把它插入到head元素中.但有些兼容性问题我们需要解决.首先在符合w3c标准的浏览器中我们只需要把要插入的css代码作为一个文本节点插入到style元素中即可,而在IE中则需要利用style元素的styleSheet.cssText来解决.还需要注意的就是在有些版本IE中一个页面上style标签数量是有限制的,如果超

数据库与Excel报表的动态生成

一.数据库与Excel报表的动态生成 (1)读取数据库的数据动态生成Excel报表,这是JSP应用中常遇到的问题,本节采用的基本方法是: 在Excel工作薄中,将报表模板制作在第一张工作表中,从数据库中读取数据,利用POI组件复制模板工作表 而得到一张新的工作表,将查询数据填写到新的工作表中. (2) 实例分析 写一个Servlet程序,查询pubs数据库的titles表和sales表,把查询结果集数据填写到图6-14的报表中, 操作步骤如下: 第1步:新建一个名类为"DBExcelServle

javascript生成表格增删改查 JavaScript动态改变表格单元格内容 动态生成表格 JS获取表格任意单元格 javascript如何动态删除表格某一行

jsp页面表格布局Html代码 <body > <center> <input type="text" value="111" id="mytext"> <table border="1" width="60%" id="mytable"> <tr> <td id="td1">第一行第一列<