个

想要实现如上图动态添加或者删除一行的功能,代码如下:(包含点击“环节参与人员”空白栏时弹出组织结构人员树时的弹窗功能)

HTML部分:

<body ><div id="table_" style="margin-left: 20px;margin-top: 50px"><table id="tab01" cellpadding="0" border="2" width="760px"><tr ><td align="center" width="40px">环节序号</td><td align="center" width="340px">环节参与人员</td><td align="center" width="180px">功能</td><td align="center" width="120px">添加/删除</td><td align="center" width="100px">备注</td></tr>                   <tr ><td align="center"><input type="text" id="huanjiename01" name="huanjiename" value="01" readonly="readonly" style="border-style: none; width: 30px;"></td><td><input type="text" id="huanjieren01" name="huanjieren" value="${userName }" readonly="readonly"  size="60" ><input type="hidden" id="huanjieren01id" name="huanjieren01id" value="${userId }"></td><td>&nbsp;&nbsp;</td><td>无</td><td><input type ="text" id="demo01" name="demo" value="发起人" readonly="readonly"></td></tr><tr ><td align="center"><input type="text" id="huanjiename02" name="huanjiename" value="02" readonly="readonly"  style="border-style: none; width: 30px;"><td><input type="text" id="huanjieren02" name="huanjieren" onclick="prefox(02)" readonly="readonly" size="60" ><input type="hidden" id="huanjieren02id" name="huanjieren02id"></td><td><input type="radio" name="fun02" value="协同" checked="checked" >协同&nbsp; &nbsp;<input type="radio" name="fun02" value="审批" >审批</td><td>&nbsp<a href="#" onclick="addRow(this)">添加</a></td><td><input type ="text" id="demo02" name="demo" ></td></tr>                 </table><div align="right" style="margin-top: 20px;margin-right: 50px"><input type="button"  name="tijiao" value="保存并关闭" onclick="save()" ></div>
</div>
</body>

JS部分:

<script type="text/javascript">//选择人员(与项目相关,该功能可忽略)
function prefox(a){window.opener.document.getElementById("liuchenginfo__ext4").value="";    //清除父窗口中人员信息a="0"+a;        var id1="huanjieren"+a;var id2=id1+"id";var url = "../tree/newTree.jsp";var personid = "";var personname = "";var organpersonid = "";var organpersonname = "";var persongroupid = "";var persongroupname = "";var organgroupid = "";var organgroupname = "";var groupid = "";var groupname = "";var j=new Object();var obj=showModalDialog(url,[["person",false],["group"],false],'dialogWidth:700px;dialogHeight:500px;status:no;scroll:no');
//  var obj=window.open(url,[["person",false],["group"],false],'modal=yes,height=500,width=700,top='+(screen.height-400)/2+',left='+(screen.width-635)/2+',toolbar=no,menubar=no,scrollbars=yes,resizable=no,location=no,status=no');if(obj != null && obj.length != 0){//获得人员组织树中的人员for(var i=0;i<obj[0].person.length; i++){if(i==0){personid+=obj[0].person[i].value;personname+=obj[0].person[i].text;}else{personid+=','+obj[0].person[i].value;personname+=','+obj[0].person[i].text;}}if(personid.length<=0) {alert("请选择接收人,且不要选择组织!");} else {j.personids=personid;j.persons=personname;document.getElementById(id1).value=personname;             //人员姓名document.getElementById(id2).value=personid;          //人员id}}
}//添加行
function addRow(obj){var tb = document.getElementById('tab01');    // table 的 idvar rows = tb.rows;                           // 获取表格所有行var i = rows.length-1;                      //表格最后一行var j="huanjiename0"+i;            var k=document.getElementById(j).value;k=k.replace("0","");               //将数字前面的“0”去掉,防止异常var m=parseInt(k)+1;var n="0"+m;var table = obj.parentNode.parentNode.parentNode;   var tr = document.createElement('tr');var td1 = document.createElement('td');var td2 = document.createElement('td');var td3 = document.createElement('td');var td4 = document.createElement('td');var td5 = document.createElement('td');td1.setAttribute("align","center");td1.innerHTML='<input type="text" id="huanjiename'+n+'" name="huanjiename" value="'+n+'" readonly="readonly" style="border-style: none; width: 30px;">';td2.innerHTML='<input type="text" id="huanjieren'+n+'" name="huanjieren" onclick="prefox('+n+')" size="60"><input type="hidden" name="huanjieren'+n+'id" id="huanjieren'+n+'id" >';td3.innerHTML='<input type="radio"  name="fun'+n+'" value="协同"  checked="checked" >协同 &nbsp; &nbsp;<input type="radio" name="fun'+n+'" value="审批" >审批 ';td4.innerHTML='&nbsp<a href="#" onclick="addRow(this)">添加</a>&nbsp<a href="#" onclick="removeRow(this)">删除</a>';td5.innerHTML='<input type ="text" id="demo'+n+'" name="demo" value="" >';tr.appendChild(td1);tr.appendChild(td2);tr.appendChild(td3);tr.appendChild(td3);tr.appendChild(td4);tr.appendChild(td5);table.appendChild(tr);
}
function removeRow(obj){var tr = obj.parentNode.parentNode;var trArr= obj.parentNode.parentNode.parentNode.children;if(tr.rowIndex == trArr.length -1){     //如果是最后一行,则直接删除即可tr.parentNode.removeChild(tr);}else{alert("对不起,只能从最后一行开始删除!");}
}function save(){if(confirm("是否现在进行提交?")){var tb = document.getElementById('tab01');    // table 的 idvar tr = tb.rows;   var result = []; // 数组var prid='${processid }';for (var i = 2; i < tr.length; i++) {// 遍历表格中每一行的内容var func;var radios = document.getElementsByName("fun0"+i);var names = document.getElementById("huanjieren0"+i).value;if(names==""){alert("对不起,环节参与人不能为空!");return false;}if(radios[0].checked==true){func=radios[0].value;}else{func=radios[1].value;}var tds = $(tr[i]).find("td");  result.push({"huanjiename" : $(tds[0]).find("input").val(),"ext5" : $(tds[1]).find("input").val(),"ext6" : $('#huanjieren0'+i+'id').val(),"ext3" : func,"processid":prid,"ext4": $(tds[4]).find("input").val()}) }//var jsonData={"result":result}$.ajax({type : "post",url : "../huanjiebiao/insertHuanjie.do",data : {"json":JSON.stringify(result)},dataType:"json",          //返回类型success : function(msg) {if(msg){                         var namefun=msg[0].PERSONNAME+"("+msg[0].EXT4+")";for ( var i = 1; i < msg.length; i++) {var personname=msg[i].PERSONNAME;var fun=msg[i].EXT4;namefun=namefun+","+personname+"("+fun+")";}  window.opener.document.getElementById("liuchenginfo__ext4").value=namefun;}window.close();}})}else{return false;}
}</script>

菜鸟级代码水平,还望各位大佬们多多指点,小弟在此多谢了!

JSP中动态添加或删除table的行相关推荐

  1. Unity NGUI中动态添加和删除sprite

    (以后,参考链接和作者将在文章首部给出,转载请保留此部分内容) 参考链接:http://www.narkii.com/club/thread-299977-1.html,作者:纳金网 比巴卜: 参考链 ...

  2. Unity NGUI中动态添加和删除sprite(附上转载者注释)

    --------------------- 此部分为转载的感受. 原文对于NGUI如何动态添加删除sprite,以及调用NGUI中的图集Atlas都有很明确的代码. 转载括号内容附上转载作者(Bula ...

  3. JSP中动态添加 “添加附件选择框”

    <script language="javascript"> iIndex = 0; var annex = 0; function getIndex() { iInd ...

  4. JS实现动态添加和删除div

    实现方式一:只在最后一个数据中动态添加或者删除 | 背景 需要做一个页面,页面可以输入参数,点击确认按钮可以发请求给某接口.但是接口的某个字段是数组类型,所以在页面上需要实现添加或者删除元素的功能. ...

  5. html表格中添加修改和删除链接,jQuery实现为table表格动态添加或删除tr功能示例...

    本文实例讲述了jQuery实现为table表格动态添加或删除tr功能.分享给大家供大家参考,具体如下: HTML页面元素如下: 订单合同号 捆包号 品名 规格 材质 重量 业务需求是,从后台获取到订单 ...

  6. vue根据索引删除数组中的一个对象_Vue实现动态添加或者删除对象和对象数组的操作方法...

    添加核心代码如下: this.data.push({ type: [{ value: '选项1', label: 'in' }, { value: '选项3', label: 'out' }], va ...

  7. JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(推荐七)

    前言 学习是有趣的,但有过滤的学习内容就更好,本博主就专门为刚接触javascript客户端编程的朋友提供及分享个人学习经历!建议大家看看:(汤姆大叔的博客) http://www.cnblogs.c ...

  8. JavaScript学习笔记:动态添加与删除表格行

    文章目录 一.添加表格行与单元格 二.动态删除表格行与单元格 三.案例演示1 四.案例演示2 一.添加表格行与单元格 Javascript可以控制table,动态的插入行和单元格.rows保存着< ...

  9. 使用 Echarts 实现折线图中线条添加、删除、编辑

    使用 Echarts 实现折线图中线条添加.删除.编辑 小帅 小白,也能改变浪花的方向,公众号:51reboot运维开发 介绍一下使用 Echarts 做数据统计分析,如何实现支持折线图的添加.删除. ...

最新文章

  1. 山西五台警方通报“男子强拽女学生”:嫌疑人被刑拘
  2. 影响程序员薪资的,从来不止是学历!
  3. 日志组件logback介绍及配置使用方法
  4. 数组分成两组差值最小 python_数组中的数分为两组,让给出一个算法,使得两个组的和的差的绝对值最小,数组中的数的取值范围是0x100,元素个数也是大于0, 小于100 。...
  5. 11.JDK8内存模型、本地方法栈、虚拟机栈、栈帧结构(局部变量表、操作数栈、方法出口、虚拟机栈与本地方法栈的关系、寄存器、方法区、堆(Heap)、jvm中的常量池、Metaspace(元空间))
  6. eclipse没有日志_技术进展 | 加强公共DHT抵抗eclipse攻击!
  7. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1056:点和正方形的关系
  8. linux 传真 邮件,如何在Linux环境下架设一台传真服务器(2)
  9. 一个简单的.NET MVC 实例
  10. 书写README的各种markdown语法
  11. 初入java编程-面向对象
  12. 这售价要抢疯了?iPhone SE 2再曝光:将搭载A13芯片
  13. 小蜜蜂(动态规划dp)
  14. openstack虚拟机支持USB 重定向(usb映射)
  15. 一张图看懂Resnet50与Resnet101算法
  16. gif一键抠图 在线_「在线抠图神器」推荐3个免费AI一键抠图网站
  17. 通俗易懂|基于零信任理念的技术让远程办公「安全又敏捷」
  18. opencv 查找白色图片的一个黑点
  19. 强大的vim配置文件,让编程更随意【http://www.cnblogs.com/ma6174/】
  20. linux skyeye,用skyeye运行uClinux内核

热门文章

  1. 基于BP神经网络的车牌识别系统的设计
  2. OllyDbg——基础1
  3. 计算机专业常用英语(转)
  4. 7:1 error Expected indentation of 2 spaces but found 4 indent 11:35 error Newline requir
  5. Python笔记-上证指数收益率计算
  6. 小学计算机教案动画欣赏,小学信息技术Flash动画教学反思
  7. redis list操作leftpop
  8. python将所有excel文档合并
  9. Beyond Compare 使用方法
  10. Gido推出电商快递服务,从中国到越南只需三天