本章案例为通过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. 【续集】塞翁失马,焉知非福:由 Styles.Render 所引发 runAllManagedModulesForAllRequests="true" 的思考

    在上一篇中,还有个遗留问题没有解决,就是 ASP.NET MVC MapRoute .htm 不起作用,如果不使用 runAllManagedModulesForAllRequests="t ...

  2. 再看ftp上传文件

    前言 去年在项目中用到ftp上传文件,用FtpWebRequest和FtpWebResponse封装一个帮助类,这个在网上能找到很多,前台使用Uploadify控件,然后在服务器上搭建Ftp服务器,在 ...

  3. Authentication of Django

    Django Authentication 用户认证系统 一. Django的认证系统 Django自带一个用户认证系统,用于处理用户账户.群组.许可和基于cookie的用户会话. 1.1 概览 Dj ...

  4. byte为什么要与上0xff?

    无意间翻看之间的代码,发现了一段难以理解的代码. byte[] bs = digest.digest(origin.getBytes(Charset.forName(charsetName))) ; ...

  5. git log命令全解析,打log还能这么随心所欲!

    git log命令非常强大而好用,在复杂系统的版本管理中扮演着重要的角色,但默认的git log命令显示出的东西实在太丑,不好好打扮一下根本没法见人,打扮好了用alias命令拍个照片,就正式出道了! ...

  6. 关于jsp的内置对象request和response的重定向和转化(待补充)

    请求重定向 1.客户端行为 2.response.sengRedirect(): 3.本质上讲,相当于请求两次 4.URL地址会改变 请求转发 1.服务器行为 2.response.getReques ...

  7. javascript超过容器后显示省略号效果(兼容一行或者多行)

    javascript超过容器后显示省略号效果       在实际的项目中,由于文字内容的长度不确定性和页面布局的固定性,难免会出现文字内容超过div(或其他标签,下同)区域的情况,此时比较好的做法就是 ...

  8. 图解DataGridView编辑列

    WinForm中DataGridView功能强大,除了可以自动绑定数据源外,还可以根据需求编辑列.下面以截图说明添加编辑列的步骤(HoverTreeSCJ 项目实际界面). 1.选择DataGridV ...

  9. 使用nuget打包类库并发布

    前言 NuGet 是免费.开源的包管理开发工具,专注于在 .NET 应用开发过程中,简单地合并第三方的组件库.今天的目的就是记录一下如何打包一个类库,并发布到官网.在开始之前需要在www.nuget. ...

  10. 关于前期在云服务器上部署TOMCAT服务器的问题

    如果你要将你的项目放在服务器上(针对云服务器),首先你必须要学会前期部署Tomcat的准备, 第一步:安装jdk,配置环境变量 这个比较简单,配置java环境变量最为简单的方法是将java的 (../ ...