html表格动态添加删除行(有后台操作)

<HTML>
<TITLE>Form Object example</TITLE>
<HEAD>
<script language="javascript">
function delrow1()
{
var oElement=event.srcElement;
while(oElement.tagName!="TR")
{
oElement=oElement.parentElement;
}
var oTBody=oElement.parentElement;
oTBody.removeChild(oElement)
}

function delrow2()//刪除当前行
{
var currRowIndex=event.srcElement.parentNode.parentNode.rowIndex;
document.all.yltable.deleteRow(currRowIndex);//table10--表格id
} 

function insertrow2() //增加的一行方法2
{
newRow=document.all.yltable.insertRow(-1);
var j_1 = document.all.yltable.rows.length;
newcell=newRow.insertCell();
newRow.bgColor='#FFFFFF';
newcell.align='center';
newcell.innerHTML=""+j_1+"";

newcell=newRow.insertCell() ;
newRow.bgColor='#FFFFFF';

newcell.align='center';
newcell.innerHTML="<input type='text' name='ylText"+j_1+"' />";

newcell=newRow.insertCell() ;
newRow.bgColor='#FFFFFF';

newcell.align='center';

newcell.innerHTML='<input name="button3" type="button" onClick="delrow1()" value="删除1"> <input name="button3" type="button" onClick="delrow2()" value="删除2">';

document.all.yltable.focus();

}

</script>
</HEAD>
<BODY>
<form name="ylform" id="ylform">
<center>
<input name="button" type="button" onClick="inserttable()" value="增加表格">
<input name="button2" type="button" onClick="insertrow1()" value="增加一行1"> 

<input name="button22" type="button" onClick="insertrow2()" value="增加一行2">
</center>

<div style="overflow-y:auto; overflow-x:visible;width:85%;height:150px">
<table border="1" align="center" width="50%" id="yltable">
<TBODY id=yl1>
<tr>
<td width="30%" height="22"><div align="center">1</div>
<td width="40%">
<div align="center">
<input name="textfield" type="text" value="yl">
</div></td>
<td width="30%"><div align="center">
<input name="button3" type="button" onClick="delrow1()" value="删除1"> <input name="button3" type="button" onClick="delrow2()" value="删除2">
</div></td>
</tr>
</TBODY>
<TBODY id=yl2>
<tr>
<td><div align="center">2</div></td>
<td><div align="center">
<input name="textfield2" type="text" value="yanleigis">
</div></td>
<td><div align="center">
<input name="button3" type="button" onClick="delrow1()" value="删除1"> <input name="button3" type="button" onClick="delrow2()" value="删除2">
</div></td>
</tr>
</TBODY>
<TBODY id=yl3>
<tr>
<td ><div align="center">3</div></td>
<td ><div align="center">
<input name="textfield22" type="text" value="">
</div></td>
<td ><div align="center">
<input name="button3" type="button" onClick="delrow1()" value="删除1"> <input name="button3" type="button" onClick="delrow2()" value="删除2">
</div></td>
</tr>
</TBODY>
</table>
</div>

<center>
</center>
</form>
</BODY>
</HTML>

运行截图:

上面这个只是个简单的demo,里面很多地方要根据实际需要改。

比如在用insertRow()添加时会先查看现有几行,然后给下一行赋id,deleteRow()是根据这个id进行删除的,所以一边添加一边删除的话会删错。

下面就看一下我在实际项目中的写法:

主要代码如下:

var j_1=0;
	function callback(json){
	//alert(json.id);
	//提交参数的回调函数
		//表格添加一行
		newRow=document.all.yltable.insertRow(-1);
		 j_1++;
		newRow.id=json.id;
		newcell=newRow.insertCell();
		newcell.className="cell";
		//newRow.bgColor='#FFFFFF';
		newcell.align='center';
		//newcell.innerHTML="";
		newcell.innerHTML="第"+j_1+"行";

		newcell=newRow.insertCell();
		//newRow.bgColor='#FFFFFF';
		newcell.className="cell";
		newcell.align='center';
		newcell.innerHTML=json.paramname;

		newcell=newRow.insertCell() ;
		//newRow.bgColor='#FFFFFF';
		newcell.className="cell";
		newcell.align='center';

		//alert(document.getElementById("aaaaa"))
		//newcell.innerHTML='<input name="button3" type="button" onClick="delrow1()" value="删除1"> <input name="button3" type="button" onClick="delrow2()" value="删除2">';
		newcell.innerHTML=json.paramvalue;

		newcell=newRow.insertCell() ;
		//newRow.bgColor='#FFFFFF';
		newcell.className="cell";
		newcell.align='center';
		//newcell.innerHTML='<shiro:hasPermission name="dojob:delete"><a class="delete" target="ajaxTodo" href="/workbench/sdsc/job/jobparamdelete/'+json.id+'" title="确认要删除该参数?"><span>删除</span></a></shiro:hasPermission>';
		newcell.innerHTML='<a title="确认要删除该参数?" onClick="submit('+json.id+')"><span>删除</span></a>';
		document.all.yltable.focus();

	}

	function submit(a){
	$.ajax({
				url : "/workbench/sdsc/job/jobparamdelete/"+a,
				data : {
				},
				type:"post",
				dataType : 'json',
				success : function(data) {
					var table = document.getElementById('yltable');
					document.getElementById(a).parentNode.removeChild(document.getElementById(a));

				},
				error : function() {
					alert("失败");
				}
		});
	}

这里是表单提交后的一个回调函数 callback(json)  功能是添加一天信息动态显示到上面的表格 ,点删除先删除数据库信息,在让表格的这一行消失。

界面:

这里面主要的难点是删除,要找到这一行。  我直接把后台传来的id当成这个按钮的id,找到按钮的父节点 ,删其子节点:

document.getElementById(a).parentNode.removeChild(document.getElementById(a));

这里费半天劲儿才能弄好,贴出来希望给大家帮助。

html表格动态添加删除行(有后台操作)

时间: 2024-10-20 14:55:16

html表格动态添加删除行(有后台操作)的相关文章

jQuery可以计算的表单,包括单选改变价格,select改变价格,动态添加删除行计算

jQuery可以计算的表单,包括单选改变价格,select改变价格,动态添加删除行计算 各种表单情况的计算 演示 JavaScript Code <script type="text/javascript"> var currentRow = 3; $(document).ready(function(){ $('#calx').calx(); $('#add_item').click(function(){ var $calx = $('#calx'); currentR

MVC动态添加文本框,后台使用FormCollection接收

在"MVC批量添加,增加一条记录的同时添加N条集合属性所对应的个体"中,对于前台传来的多个TextBox值,在控制器方法中通过强类型来接收.使用FormCollection也可以接收来自前台的多个TextBox值.实现效果如下: 动态添加TextBox: 后台使用FormCollection接收来自前台的TextBox值,再以TempData把接收到的值返回: 当页面没有TextBox,点击"移除",提示"没有文本框可被移除": 在HomeCon

JS实现表格Table动态添加删除行

1.页面内容 <table style="border:1px ; width:100%; height:160px">                <THEAD>                    <TR>                    <TH height="10px">姓名</TH>                    <TH height="10px">

Webform动态创建删除行及后台取值

开发过程中经常碰到许多不确定事项,所以有时需要动态生成新的记录,如图所示,点击新增时新增一条参考记录,点击删除时则删除该记录:第一步,创建一个表格,用hidden记录当前最大行数,添加时则只需复制模板并修改ID(由于lable最终生成的html是span标签,不方便后台取值,所以换成了textbox) <table class="table-bordered" style="width:100%;text-align:center"> <thead

jQuery实现表单动态添加与删除数据操作示例

<!DOCTYPE html> <html lang="en"> <head>   <meta charset="UTF-8">   <title>用户名注册</title>   <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>   <script&g

js动态添加删除行,兼容ie和火狐

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

miniUI 动态添加table - JS

1.效果展示 ↓ 2.具体代码 1 <script type="text/javascript"> 2 function addRow() { 3 var form = document.getElementById("addForm"); 4 var table = document.getElementById("table_Records"); 5 var id_com = form.getElementsByTagName(&

jquery 动态增加删除行

最近写程序,碰巧有动态增加删除行,下面就记录一下 html就不写了,也没有什么,直接上核心了 新增行 function addRow(obj){ //获得table一共有多少行,方便追加的时候给序号赋值 var length = $("#grid tr").length; //获得当前是第几行,以便追加的时候,在该行下进行新增,我这里跨的级别比较多,根据实际层级去定义 var current = $(obj).parent().parent().parent().prevAll().l

C#后台动态添加Grid表格

前面页面: 1 <ScrollViewer x:Name="sv_data" Grid.Row="1" BorderBrush="#25A0DA" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"> 2 3 <Grid x:Name="rgv_schedule" Backgro