点击添加按钮,使用ajax动态添加一行和移除一行,并且序号重新排序和数据不重复操作判断
<div class="control-group " style="top: -20px;position: relative;">
<label class="control-label">
<g:message code="终端编号" />:
<g:select optionKey="id" class="icon-resize-full terNo" optionValue="terNo"
from="${com.cnpay.entity.HandTerminal.executeQuery('from HandTerminal where status = 0 order by version asc')}"
name="terNo" noSelection="['':'请选择']">
</g:select>
<span class="color terNoMsg"></span>
<input type="button" class="btn btn-success btn-mini btn-add" value="添加一行"/>
</label>
</div> <div class="control-group " style="top: -20px;position: relative;">
<table class='table table-bordered table-striped table-condensed' style='margin-bottom:0;'>
<thead>
<th><div class='text-center'>序号</div></th> <th><div class='text-center'>终端编号</div></th> <th><div class='text-center'>所属牧场</div></th> <th><div class='text-center'>操作</div></th>
</thead> <tbody id="tbody"> </tbody>
</table>
</div>
/**
*添加一行
*/
$(".btn-add").click(function() {
/**
*获取select下拉列表的value值
* @type {*|jQuery}
*/
var id = $(".terNo").children("option:selected").val(); var hasRepeatValue = false;
$("#tbody").find("tr").each(function() {
var trid = $(this).attr("id");
if (id == trid) {
//如果tr的id已经存在就返回一个true就不让再添加相同的数据
hasRepeatValue = true;
}
}); /**
*@ ajax 添加行
*/
if (!hasRepeatValue) {
$.ajax({
url: "selectFarmName",
type: "post",
dataType: "json",
data: {
"id": id
},
success: function(data) {
if (data.success) {
/**
* 上面已经判断了 如果我添加一行把我select value值带到后台
* 再把id返回给tr
* 如果我已经有了这个tr 就不会执行我的这里的ajax
* @type {string}
*/
var tr = "<tr id=" + data.id + ">";
tr += "<td><input type='hidden' class='handTID' value='" + data.id + "'/>";
tr += "<div class='text-center' id='No'></div></td>";
tr += "<td><div class='text-center'>" + data.terNo + "</div></td>";
tr += "<td><div class='text-center'>" + data.farmName + "</div></td>";
tr += "<td><div class='text-center'><button type='button' class='btn btn-danger btn-mini btn-remove'>删除</button></div></td>";
tr += "</tr>";
$("#tbody").append(tr);
/**
*@ 记住 js是从上往下执行的要生成行tr
* 然后循环每一行 拿到每行的第一个列td
* 把序号赋值给第一个td的子元素id为No的div
*/
$("#tbody").find("tr").each(function(i) {
$(this).find("td:first").children("div#No").html(i + 1);
}); }
},
error: function() {
alert("系统异常,请稍后重试!");
}
});
} else {
$("#add").modal('hide') $("#tips").modal('show'); }
});
/**
*@ 删除一行 这个删除按钮是ajax里面生成的按钮
* 删除一行 就把每行的第一个td子元素
* id为No的div序号自动重新排序
*/
$("#tbody").delegate("button.btn-remove", "click",
function() {
$(this).closest("tr").remove();
$("#tbody").find("tr").each(function(i) {
$(this).find("td:first").children("div#No").html(i + 1);
});
});
另外我再带上我每一行的数据怎么用ajax带到后台
$("#btnSave").click(function() {
var obj = {}; //声明一个对象
/**
* 我这里是个例子 是把一行的数据放到json里带到后台
* 一行数据 所以我就写了id 获取id的值放到obj这个对象里
* 如果你有多行数据 你就取class的值
* 因为class是可重复的 id是不可重复的
* 例: obj.jobName=$(this).find(".jobName").val();
*/
obj.operatorName = $("#operatorName").val();
obj.jobName = $("#jobName").val();
obj.username = $("#username").val();
obj.password = $("#password").val();
obj.hand = [];
var objc = {}
$("#tbody").find(".handTID").each(function() {
objc.hid = $(this).val();
obj.hand.push(objc.hid);
});
$.ajax({
url: 'saveOne',
type: 'post',
data: {
"json": JSON.stringify(obj)
},
success: function(data) {
if (data.success) {
window.location = '${createLink(controller: 'systemUser ', action: 'indexs ')}';
} else {
alert("保存异常!");
}
},
error: function() {
alert("系统异常,请稍后重试!");
}
});
});
ssss
点击添加按钮,使用ajax动态添加一行和移除一行,并且序号重新排序和数据不重复操作判断的更多相关文章
- jquery获取不了ajax动态添加的内容的解决办法
在HTML页面的一个button <div class="ajaxClick"> <button>内容</button> </div> ...
- vue2.0 实现click点击当前li,并动态添加class(这种方法不太喜欢)
1,文件内容 ---- 使用v-for遍历数据 ---- @click="selectSort(item)"添加点击事件,并把每个obj=item传入 ---- v-show=&q ...
- vue 动态添加 <style> 样式 vue动态添加 绑定自定义字体样式
created(){ //动态添加自定义字体样式 let style = document.createElement('style'); style.type = "text/css&qu ...
- 动态添加布局、动态添加View、LinearLayout动态添加View;
LinearLayout提供了几个方法,用作动态添加View特别好用: 可以添加View.删除View.删除指定位置View.删除全部View: 看代码: public class MainActiv ...
- python 面向对象六 动态添加方法 __slots__限制动态添加方法
一.动态添加属性 >>> class Student(object): pass >>> st = Student() >>> st.name = ...
- ajax动态添加复选框
function getLands() { $.ajax({ url:"httpserver.do?doPost&userQygs="+$("#userQygs& ...
- ajax动态添加的li不能绑定click事件
单纯的给li标签添加click事件,是不会执行的. 经过试验 <ul id="searchedUser"><li>搜索结果</li></u ...
- 原生ajax动态添加数据
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 浏览器后退按钮导致jquery动态添加的select option值丢失的解决方法
监控浏览器返回功能 判断浏览器返回功能 禁用浏览器的后退按钮 JS禁止浏览器后退键 http://volunteer521.iteye.com/blog/830522/ 浏览器返回功能 判断上一页面来 ...
随机推荐
- hibernate的get() load() 和find()区别
如果找不到符合条件的纪录,get()方法将返回null.如果找不到符合条件的纪录,find()方法将返回null.如果找不到符合 条件的纪录,load()将会报出ObjectNotFoundEccep ...
- KMP的正确使用法_x新疆网络赛Query on a string
Query on a string 题意,给定一个大字符串,给定一个小模式串,定义 两种不同的任务模式,分别是查询和更改: 查询对应区间内,有多少个匹配到位的数字: 修改某一位的某一个字母. 于是直觉 ...
- Diycode开源项目 UserActivity分析
1.效果预览 1.1.实际界面预览 1.2. 这是MainActivity中的代码 这里执行了跳转到自己的用户界面的功能. 1.3.点击头像或者用户名跳转到别人的页面 UserActivity的结构由 ...
- 随手正则写的 CSDN【只看楼主】功能
写这个的时候居然没有看到原来CSDN已经有这个功能了,写完代码了突然发现原来早就已经有了. 现把代码贴出来吧,虽然有很多解析HTML的开源类库如:http://htmlagilitypack.code ...
- easyui-numberbox限定仅输入数字
许多必填项都涉及到数字,比如电话号码,身份证号这些要求用户在输入时只能输入数字.Easyui提供了数字框控件,允许用户只输入数字, <td> <input id="ssd& ...
- phpMyAdmin 4.7.x CSRF
phpMyAdmin 4.7.x CSRF 场景:管理员登陆phpmyadmin之后,我试验了一下,发现只要是登陆session没有失效应该是都可以的, 利用,phpmyadmin可以通过get方式操 ...
- 如何使用 JSX 构建 Gutenberg 块
本教程将介绍使用 JSX 构建自定义块所需的步骤. 由于浏览器不支持 JSX 和 ES6,因此我们需要将代码编译后才能在浏览器中运行. 我们不需要手动编译代码,因为有些工具可以为我们自动执行此过程. ...
- Mac OS 系统占用储存空间太大怎么办?
存储空间 121 GB,系统就占用 106G,然后就是不断的弹窗提醒你! 解决方法: 终端先执行一下 du -sh * 查看具体是哪里使用了存储空间,一般都是 library 占用比较多的空间, 把可 ...
- Git 笔记 - section 1
1. 创建版本库 创建目录 git init git add <file> git commit -m "本次提交内容的说明" 2. 查看状态 git status g ...
- MyEclipse断点调试方法
MyEclipse断点调试方法 最基本的操作是: 1, 首先在一个java文件中设断点,然后运行,当程序走到断点处就会转到debug视图下, 2, F5键与F6键均为单步调试,F5是step into ...