本章案例为通过js,动态操作table,实现在单页面进行增删改查的操作。

  简要案例如下:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@page import="java.util.Date"%>
<c:set var="ctx" value="${pageContext.request.contextPath}" />
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function addOrder() {
document.getElementById('hiddtr').style.display="table-row";
window.location="#hiddtr";
}
function cancel(){
document.getElementById('hiddtr').style.display="none";
} function modify(ele){
var tr = $(ele).closest("tr");
var name = tr.find("input[name='name']");
var age = tr.find("input[name='age']");
if(name.val()==""){
alert("姓名不能为空");
return ;
}
if(age.val()==""){
alert("年龄不能为空");
return ;
}
if(!confirm("确认修改?")){
return;
}
$.ajax({
type: "POST",
url: "${ctx}/user/update",
dataType:"json",
data: {name : name.val(),age:age.val()},
success: function(json){
if(json.msg=='success'){
alert("修改成功!");
}else{
alert(json.msg)
}
$(ele).attr("disabled",false);
}
});
}
function deleteObj(ele,id){
if(confirm("确定要删除吗?")){
var url="${ctx}/user/delete/"+id;
$.ajax({
type: "POST",
url: url,
dataType:"json",
success: function(json){
if(json.msg=='success'){
alert("删除成功!");
$(ele).closest("tr").remove();
}else{
alert(json.msg)
}
$(ele).attr("disabled",false);
}
});
}
}
function classSubmit(ele){
var tr= $(ele).closest("tr");
var name = tr.find("input[name='name']");
var age = tr.find("input[name='age']");
if(name.val()==""){
alert("姓名不能为空");
return ;
}
if(age.val()==""){
alert("年龄不能为空");
return ;
}
$("#addForm").submit();
}
</script>
</head>
<body>
<button type="button" id="addOrder" onclick="addOrder()" >添加</button>
<table id="table">
<thead>
<tr>
<th>id</th>
<th>name</th>
<th>age</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>${(page.currPage-1) *page.pageSize+status.count}<input type="hidden" name="edId" value="${obj.id}"/></td>
<td><input type="text" name="eqSn" value="${obj.name}"/></td>
<td><input type="text" name="depPath" value="${obj.age}"/></td>
<td><span onclick="deleteObj(this,'${obj.id}');">删除</span><span onclick="modify(this);">修改</span></td>
</tr>
<c:forEach var="obj" items="${list}" varStatus="status">
<tr>
<td>${(page.currPage-1) *page.pageSize+status.count}<input type="hidden" name="edId" value="${obj.id}"/></td>
<td><input type="text" name="eqSn" value="${obj.name}"/></td>
<td><input type="text" name="depPath" value="${obj.age}"/></td>
<td><span onclick="deleteObj(this,'${obj.id}');">删除</span><span onclick="modify(this);">修改</span></td>
</tr>
</c:forEach>
<form action="${ctx}/user/add" method="post" id="addForm">
<tr style="display: none;" id="hiddtr">
<td></td>
<td><input type="text" value="" name="name"/></td>
<td><input type="text" value="" name="age" ></td>
<td><input type="button" value="提交" onclick="classSubmit(this);return false;">
            <input type="button" value="取消" onclick="cancel()"></td>
</tr>
</form>
</tbody>
</table>
</body>
</html>

js实现动态操作table的更多相关文章

  1. 使用 JS 来动态操作 css ,你知道几种方法?

    JavaScript 可以说是交互之王,它作为脚本语言加上许多 Web Api 进一步扩展了它的特性集,更加丰富界面交互的可操作性.这类 API 的例子包括WebGL API.Canvas API.D ...

  2. 初探原生js根据json数据动态创建table

    初探原生js根据json数据动态创建table 小生以实习生的职位进入了一家非纯软件的公司做asp.net开发,大半个月下来发现公司里居然没有前端工程师,这令我很诧异,跟着公司做项目,发现前端后台没有 ...

  3. js动态给table添加/删除tr的方法

    js动态给table添加/删除tr的方法. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> ...

  4. JS动态创建Table,Tr,Td并赋值

    JS动态创建Table,Tr,Td并赋值. 成果库修改: 要求主题列表随成果类型改变而改变 网上查询资料后开工,在成果类型下拉框添加change()事件触发Dwr,查询主题集合——动态创建/编辑Tab ...

  5. js 操作table: insertRow(),deleteRow(),insertCell(),deleteCell()方法

    表格有几行: var trCnt = table.rows.length;  (table为Id ) 每行有几列:for (var i=0; i<trCnt; i++)              ...

  6. 第十三篇 JS 操作table表格

    JS 操作table表格 这节课难度可能高一点,因为没有提前解释if判断.for循环.这节课是直接把这两样用上了,老师先简单介绍一下: if,判断语句,判断就很简单了嘛,假如说1=1(1等于1),当然 ...

  7. js基础例子动态创建table实例

    <style> table{ width:500px; font-weight: bold; border: 1px solid #000; border-collapse:collaps ...

  8. JS组件系列——Bootstrap Table 表格行拖拽(二:多行拖拽)

    前言:前天刚写了篇JS组件系列——Bootstrap Table 表格行拖拽,今天接到新的需要,需要在之前表格行拖拽的基础上能够同时拖拽选中的多行.博主用了半天时间研究了下,效果是出来了,但是感觉不尽 ...

  9. MiniUI动态添加table表格

    本文将介绍一下,如何用Jquery MiniUi动态添加一行table表格 1.效果展示 ↓ 2.具体代码 <script type="text/javascript"> ...

随机推荐

  1. MySQL参数

    1. sql_safe_updates 官方解释如下: , MySQL aborts . 默认为0,如果设置为1,则delete操作和update操作必须带有where子句,且where子句中的列必须 ...

  2. 开发中 常用 js 记录(一)

    (1)获得URL参数 function GetQueryString("url参数名") {     var reg = new RegExp("(^|&)&qu ...

  3. 介绍一个很爽的 php 字符串特定检索函数---strpos()

    大家在用 php 开发的时候 是否 有遇到过,对于一个获取的字符串,如果想要特定检测它是否 含有某个特定的字符或者子字符串,总是找不到好方法,或者根本做不到,迫于无奈而使用foreach. 函数: s ...

  4. CocoaPods 安装 使用

    1.开启 terminal 2.移除现有 Ruby 默认源 $ gem sources --remove https://rubygems.org/ 3.使用新的源 $ gem sources -a ...

  5. 利用SkyDrive Pro 迅速批量下载SharePoint Server 上已上传的文件

    在上一篇<SharePoint Server 2013 让上传文件更精彩>,我们一起了解了如何快速的方便的上传批量文件到SharePoint Server 2013 ,而在这一篇日志中您将 ...

  6. 【集合框架】JDK1.8源码分析之Collections && Arrays(十)

    一.前言 整个集合框架的常用类我们已经分析完成了,但是还有两个工具类我们还没有进行分析.可以说,这两个工具类对于我们操作集合时相当有用,下面进行分析. 二.Collections源码分析 2.1 类的 ...

  7. 在IHttpHandler中获取session

    因为业务要异步通过IHttpHandler获得数据,但还要根据当前登录人员的session过滤,因此要在在IHttpHandler中获取session 方法是HttpHandler容器中如果需要访问S ...

  8. SpringMVC 参数注入

    写一个web service, 总是400. 说是request有问题,server不识别.然而检查了很多次都没问题.最终问题指向spring对参数的解析和注入. 一个controller中可以自定义 ...

  9. Tomcat创建HTTPS访问,java访问https

    一 https和ssL HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的 ...

  10. 开发漫谈:千万别说你不了解Docker!

    1dotCloud到Docker:低调奢华有内涵   写在前面:放在两年前,你不认识Docker情有可原.但如果现在你还这么说,不好意思,我只能说你OUT了.你最好马上get起来,因为有可能你们公司很 ...