表单动态生成表格

  1 <!DOCTYPE html>
  2 <html>
  3 <head>
  4 <meta charset="utf-8">
  5 <title>无标题文档</title>
  6 </head>
  7     <style>
  8         .content table{
  9             width:400px;
 10             align:center;
 11             border-collapse:collapse;
 12         }
 13         .tdWidth{width:100px}
 14         .content td{text-align:center;}
 15     </style>
 16     <script>
 17         var index=1;
 18         var flag=1;
 19         var edittds=undefined;
 20         function getId(id){
 21             return document.getElementById(id);
 22         }
 23         function cre(tagName){
 24             return document.createElement(tagName);
 25         }
 26         function add(){
 27             var form=getId("form");
 28             if(form.style.display=="none"){
 29                 form.style.display="block";
 30             }else{
 31                 form.style.display="none";
 32             }
 33         }
 34         function addRow(){
 35             var name=getId("name");
 36             var sex=getId("sex");
 37             var age=getId("age");
 38             if(flag){
 39                 var tr=cre("tr");
 40                 tbody.appendChild(tr)
 41                 var td1=cre("td");
 42                 tr.appendChild(td1);
 43                 var td2=cre("td");
 44                 tr.appendChild(td2);
 45                 var td3=cre("td");
 46                 tr.appendChild(td3);
 47                 var td4=cre("td");
 48                 tr.appendChild(td4);
 49                 var td5=cre("td");
 50                 tr.appendChild(td5);
 51                 var td6=cre("td");
 52                 tr.appendChild(td6);
 53                 var checkBox=cre("input");
 54                 td1.appendChild(checkBox);
 55                 checkBox.type="checkbox";
 56                 td2.innerHTML=index++;
 57                 td3.innerHTML=name.value;
 58                 td4.innerHTML=sex.value;
 59                 td5.innerHTML=age.value;
 60                 var editBut=cre("button");
 61                 td6.appendChild(editBut);
 62                 editBut.innerText="编辑";
 63                 editBut.onclick=function(){
 64                     edit(this);
 65                 }
 66                 var delBut=cre("button");
 67                 td6.appendChild(delBut);
 68                 delBut.innerText="删除";
 69                 delBut.onclick=function(){
 70                     deleteOne(this);
 71                 }
 72             }else{
 73                 editRow();
 74             }
 75             name.value="";
 76             sex.value="男";
 77             age.value="";
 78         }
 79         function delRow(){
 80             var tbody=getId("tbody");
 81             var checkBoxs=tbody.getElementsByTagName("input");
 82             var trs=[];
 83             for(var i=0;i<checkBoxs.length;i++){
 84                 if(checkBoxs[i].checked==true){
 85                     trs.push(checkBoxs[i].parentNode.parentNode);
 86                 }
 87             }
 88             for(var j=0;j<trs.length;j++){
 89                 tbody.removeChild(trs[j]);
 90             }
 91         }
 92         function doCheckAll(){
 93             var thead=getId("thead");
 94             var CheckBox=thead.getElementsByTagName("input");
 95             var tbody=getId("tbody");
 96             var checkBoxs=tbody.getElementsByTagName("input");
 97             var len=checkBoxs.length
 98             if(CheckBox[0].checked==true){
 99                 for(i=0;i<len;i++){
100                     checkBoxs[i].checked=true;
101                 }
102             }else{
103                 for(i=0;i<len;i++){
104                     checkBoxs[i].checked=false;
105                 }
106             }
107         }
108         function deleteAllRow(){
109             var tbody=getId("tbody");
110             var checkBoxs=tbody.getElementsByTagName("input");
111             var len=checkBoxs.length;
112             for(var i=0;i<len;i++){
113                 tbody.removeChild(checkBoxs[0].parentNode.parentNode);
114             }
115         }
116         function deleteOne(target){
117             var tbody=getId("tbody");
118             tbody.removeChild(target.parentNode.parentNode);
119         }
120         function edit(target){
121             var tr=target.parentNode.parentNode;
122             var tds=tr.childNodes;
123             var name=getId("name");
124             var sex=getId("sex");
125             var age=getId("age");
126             name.value=tds[2].innerHTML;
127             sex.value=tds[3].innerHTML;
128             age.value=tds[4].innerHTML;
129             flag=0;
130             edittds=tds;
131         }
132         function editRow(){
133             var name=getId("name");
134             var sex=getId("sex");
135             var age=getId("age");
136             edittds[2].innerHTML=name.value;
137             edittds[3].innerHTML=sex.value;
138             edittds[4].innerHTML=age.value;
139             edittds=undefined;
140             flag=1;
141         }
142     </script>
143 <body>
144     <div>
145         <button onclick="add()" type="button">添加</button>
146         <button onclick="delRow()" type="botton">删除</button>
147         <button onclick="deleteAllRow()" type="button">删除所有</button>
148     </div>
149     <form id="form" style="display:none;">
150         <table>
151             <tr>
152                 <td >姓名:</td>
153                 <td><input id="name"></td>
154             </tr>
155             <tr>
156                 <td >性别:</td>
157                 <td>
158                     <select id="sex">
159                         <option selected>男</option>
160                         <option>女</option>
161                     </select>
162
163                     </select>
164                 </td>
165             </tr>
166             <tr>
167                 <td >年龄:</td>
168                 <td><input id="age"></td>
169             </tr>
170             <tr>
171                 <td><button type="button" onclick="addRow()">确定添加</button></td>
172             </tr>
173             <tr></tr>
174         </table>
175     </form>
176     <div class="content">
177         <table  border="1">
178             <thead id="thead">
179                 <tr>
180                     <th><input type="checkbox" onchange="doCheckAll()"></th>
181                     <th>ID</th>
182                     <th>姓名</th>
183                     <th>性别</th>
184                     <th>年龄</th>
185                     <th colspan="2" class="tdWidth">&nbsp;</th>
186                 </tr>
187                 <tr>&nbsp;</tr>
188             </thead>
189             <tbody id="tbody"></tbody>
190         </table>
191     </div>
192 </body>
193 </html>

时间: 2024-10-10 05:42:25

表单动态生成表格的相关文章

用javascript动态创建并提交表单form,表格table

<script> //helper function to create the formfunction getNewSubmitForm(){ var submitForm = document.createElement("FORM"); document.body.appendChild(submitForm); submitForm.method = "POST"; return submitForm;} //helper function t

[oldboy-django][2深入django]老师管理 -- form表单如何生成多选框标签,多选框的默认值显示,以及多选框数据插入到数据库,多选框数据更改到数据库

1 form表单如何生成多选框(包含了多选框可选择内容) - Form设置班级输入框为 select多选 - 多选 class TeacherForm(Form): name = fields.CharField(max_length=16, widget=widgets.TextInput(attrs={'class': 'form-control'}) ) cls = fields.MultipleChoiceField( choices=models.Classes.objects.val

Android动态生成表格

最近刚刚学习完Android的五大布局,现在我们进一步深入学习,尝试做一个动态生成表格功能的例子 样式布局代码如下: 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4

Javascript动态生成表格的性能调优

    vision 0.8 [耗时672ms]终极优化 将字符串作为数组对象的方式是目前效率最高,性能最优的方式.   <script> var t1 = new Date(); </script> <html> <head> <title></title> <script> function testTime(){ var t2 = new Date(); alert(t2-t1+"ms"); }

JS动态生成表格后 合并单元格

JS动态生成表格后 合并单元格 最近做项目碰到表格中的单元格合并的问题,需求是这样的,首先发ajax请求 请求回来后的数据 动态生成表格数据,但是生成后如果编号或者(根据其他的内容)有相同时,要合并单元格操作,在做之前也试着google下,但是网上没有碰到这方面的需求,所以自己写了一个简单的.用文字描述需求太费劲了,如下图所示: 1. 没有合并之前的图如下: 2. 合并之后的图如下: 如上所示:是根据相邻的编号相同 进行单元格合并. 先看看实现后的效果再聊吧! JSfiddle链接地址如下: 点

js动态生成表格(原创)

原文:js动态生成表格(原创) 源代码下载地址:http://www.zuidaima.com/share/1571860936543232.htm 原生js实现,兼容各主流浏览器,提供生成表格,修改表格,验证合法性功能,可做学习参考 版权声明:本文为博主原创文章,未经博主允许不得转载.

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

前段时间开发了一些web应用,其中就有涉及到动态的表格问题,因为很久没有写web前端了,所以在网上找了一些资料,发现很零碎,于是自己就根据找到的资料写了这么一个小功能,主要是供自己记忆,如果能帮到你很荣幸,如果你有更好的方法,也可以相互讨论,相互学习一下. 先来看一下需求:在web页面上动态的生成表格,并可以对表格中的数据进行编辑,然后把表格中的数据提交至后端服务器保存. 那么我们首先需要解决的是动态生成表格的问题 1.首先我们需要导入JS库文件. 1 <script src="../js

Extjs 动态生成表格

Extjs 动态生成表格 在web显示数据时,会遇到grid的列数和行数不确定的这种情况.如何来根据数据动态的创建表格呢?Extjs 的json data给我们带来了一个很好的比较简单的方法.  要创建一个grid需要确定它的列数,再根据数据的数量就可以确定行数了.  看到有人用过一种方法就是讲列的属性和数据一起放在json data里去,这样可以达到效果,但是不难发现,这样的话,就很难进行分页或者更新表格里的数据.  其实我们可以结合extjs官网上的那种固定列数的访问方法来动态生成表格.  

DHTMLX 前端框架 建立你的一个应用程序 教程(九)--绑定表单Form到表格Grrid中

绑定表单Form到表格Grrid中 现在我们需要选中一行表格数据的时候 数据能在表单中显示出来 我们可以使用DHTMLX 丰富的组件功能实现它. 绑定表单到表格 1.调用bind方法将表单绑定到网格,使其反映从网格中的所有数据 "index.html" file contactForm = layout.cells("b").attachForm(); contactForm.loadStruct("data/form.xml"); contac