利用jquery动态添加和删除表格的一行,并且保存单行数据
开发时遇到一个需求:要求要在页面的表格可以添加和删除一行,并能填写对应的数据后保存这一行数据。
HTML代码
界面使用了freemarker框架,teams是后台传过来的list类型数据
<form action="" id="" method="post">
...
<table id="addTable" >
<tr class="first_tr">
<th>姓名</th>
<th>国籍</th>
<th>单位</th>
<th>职务</th>
<th>专业、特长</th>
<th>操作</th>
</tr>
<#list teams as item>
<tr>
<input type="hidden" id="id" value="${item.id!}"/>
<td>${item.name!}</td>
<td>${item.gj!}</td>
<td>${item.dw!}</td>
<td>${item.zw!}</td>
<td>${item.zytc!}</td>
<td><input type="button" onclick="delRow(this)" value="-删除"/></td>
</tr>
</#list>
</table>
<table>
<tr>
<td celspan="6">
<input type="button" onclick="addRow()" value="+添加"/>
</td>
</tr>
</table>
...
</form>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
为了不提交表格模板,我把模板放在了form表单外面,并且样式设置为不可见
需要添加的表格模板:
<table style="display: none" id="tbl" >
<tr class="will80">
<td><input type="text" id="name" name="name" /></td>
<td><input type="text" id="gj" name="gj" /></td>
<td><input type="text" id="dw" name="dw" /></td>
<td><input type="text" id="zw" name="zw" /></td>
<td><input type="text" id="zytc" name="zytc"/></td>
<td></td>
//新增的表格中需要有保存和删除操作
<td><input type="button" onclick="save(this)" value="保存"/><input type="button" onclick="delRow(this)" value="-删除"/></td>
</tr>
</table>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
主要靠jquery代码,实现为#addTable添加最后一行
原理就是获取id为“tbl”的一行复制添加到id为“addTable”的最后一行。
保存这一行数据使用ajax。
jQuery代码
添加表格行
function addRow(){
var targetTbody= $("#tbl tbody");
//获取#tbl表格的最后一行
var tr = targetTbody.children("tr:last");
//复制到#addTable表格最后
var tr2=$("#addTable tbody").children("tr:last");
tr2.after(tr[0].outerHTML);
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
删除表格行
function delRow(obj){
//获取当前对象的父元素,在其下寻找id为“id”的元素的值
var id1=$(obj).parents("tr").find("#id").val();
var res=confirm("确定要删除么?");
if(res){
//删除界面元素,当前行
$(obj).parents("tr").remove();
}
//若有id就表示该数据是界面原本就有的,需要删除数据库数据
//若无id表示为界面动态添加的,删除时只需要删除界面元素
if(id1!=null){
//ajax删除数据
$.ajax({
url : "suggestpage_delTeam.do",
data : {"id":id1},
type : "POST",
success : function(data) {
if (data == "true") {
alert("删除成功");
} else {
alert(data);
}
}
});
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
保存单行数据
function save(obj) {
var param = {};
//获取当前属性
param.projectId="${proId}";
param.name = $(obj).parents("tr").find("#name").val();
param.gj = $(obj).parents("tr").find("#gj").val();
param.dw =$(obj).parents("tr").find("#dw").val();
param.zw = $(obj).parents("tr").find("#zw").val();
param.zytc = $(obj).parents("tr").find("#zytc").val();
//判空校验
if(checkNull(obj)){
//保存数据
$.ajax({
url : "suggestpage_savePeople.do",
ontentType : "application/x-www-form-urlencoded; charset=UTF-8",
data : param,
type : "POST",
success : function(data) {
if (data == "true") {
alert("保存成功");
//跳转界面
window.location="part2.do?proId="+param.projectId;
} else {
alert(data);
}
}
});
}
}
//判空校验
function checkNewNull(obj){
var ok=true;
//获取新增的input
var newtr=$(obj).parents("tr").find("input");
newtr.each(function(){
if($(this).val()==""){
alert("请将表单填写完整!");
$(this).focus();
ok=false;
return false;
}
});
return ok;
}
利用jquery动态添加和删除表格的一行,并且保存单行数据的更多相关文章
- jQuery动态添加和删除表格行
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- jquery 动态添加和删除 ul li列表
今天需要实现一个jquery动态添加和删除 ul li列表中的li行,自己简单的实现乐一个,分享一下 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...
- 利用jQuery动态添加input输入框,并且获取他的值
动态添加 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEnco ...
- jQuery动态添加、删除按钮及input输入框
输入框的加减实现: <html> <head> <meta charset="utf-8"> <title>动态创建按钮</t ...
- jQuery 动态添加、删除css样式
1.addClass css中: <style type="text/css"> .chColor {background: #267cb7;color:w ...
- jQuery动态添加删除select项
// 添加 function col_add() { var selObj = $("#mySelect"); var value="value"; var t ...
- jQuery如何动态添加具有删除按钮的行
代码实例如下: <!DOCTYPE html><html><head><meta charset=" utf-8"><meta ...
- jquery 动态添加表格行
jquery 动态添加表格行 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <h ...
- jquery动态添加删除div--事件绑定,对象克隆
我想做一个可以动态添加删除div的功能.中间遇到一个问题,最后在manong123.com开发文摘 版主的热心帮助下解答了(答案在最后) 使用到的jquery方法和思想就是:事件的绑定和销毁(unbi ...
随机推荐
- @RequestMapping-标准映射和Ant风格的映射
4.@RequestMapping 如果value不以“/”开头,SpringMVC会自动添加“/” 4.1.@RequestMapping映射 4.1.1.标准URL映射 4.1.2.Ant风格的U ...
- java实现spark常用算子之count
import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.a ...
- vue-router实现原理
vue-router实现原理 近期面试,遇到关于vue-router实现原理的问题,在查阅了相关资料后,根据自己理解,来记录下.我们知道vue-router是vue的核心插件,而当前vue项目一般都是 ...
- 深入理解python元类
类也是对象 在理解元类之前,你需要先掌握Python中的类.Python 中的类概念借鉴 Smalltalk,这显得有些奇特.在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段.当然在 P ...
- Google浏览器显示URL的 http https ....
谷歌浏览器输入 chrome://flags/#omnibox-ui-hide-steady-state-url-trivial-subdomains 输入之后, 高亮部分选项 改为 Disabled ...
- idea中 参数没有描述报错 @param XX tag description is missing错误,去除黄色警告
最近在使用idea开发工具,在方法备注中参数没有描述报错就会报一些黄色警告: @param XX tag description is missing,下面展示去除黄色警告的方法 File--sett ...
- 3.(基础)tornado的接口调用顺序与模板
上一节介绍了tornado的请求与响应,这一节介绍tornado的接口调用顺序和模板 首先都有哪些接口呢?作用是什么呢?并且都有的时候,执行顺序是怎么样的呢? 接口 1.initialize,表示初始 ...
- (转)Linux传输大文件(分割传输)
1.分拆为多个文件的命令: cat workspace_2018.tar.gz | split -b 1G - workspace_2018.tar.gz. 命令解释: workspace_2018. ...
- 谈谈对MVC的认识?
核心思想是:视图和用户交互通过事件导致控制器改变 控制器改变导致模型改变 或者控制器同时改变两者 模型改变 导致视图改变 或者视图改变 潜在的从模型里面获得参数 来改变自己.他的好处是可以将界面和业务 ...
- 基于Redis实现分布式锁(转载)
原文地址:http://blog.csdn.net/ugg/article/details/41894947 Redis命令介绍使用Redis实现分布式锁,有两个重要函数需要介绍 SETNX命令(SE ...