Layui表格之动态添加数据(表格多选解决方案)
前言:
Layui已经给出了多选记录的解决方案,是在每条数据的前面加上CheckBox,每次选择都有监听。效果是这样:
实现监听的代码如下,这是一种解决选择多条数据的方案:
- table.on('edit(test)', function(obj){ //注:edit是固定事件名,test是table原始容器的属性 lay-filter="对应的值"
- console.log(obj.value); //得到修改后的值
- console.log(obj.field); //当前编辑的字段名
- console.log(obj.data); //所在行的所有相关数据
- });
本文记录的是我使用的另一种解决方案,即展示两个表格。详细需求如下:
需求:
1、页面展示两个表格,左边表格展示所有数据,右边是一个空表格展示已经选中的数据。
2、当点击左边数据表格某条记录,右边表格动态添加这条记录。
3、表单提交的时候直接提交右边表格所有数据。
这样就实现了记录多选,相对比较直观。
实现效果:
实现步骤分析:
1、既然提交的是右边表格的数据,是动态添加的,说明是不断变化的数据集合,所以应该设为变量。
2、当点击左边的表格数据,应该获取当前这条数据和右边表格的所有数据,将当前行数据添加到右边的集合变量中。
3、进行表格重载,刷新右边的表格。
代码参考:
- // 设置变量存储已选择列表的数据
- var tableBak = [];
- // 监听表格点击事件
- table.on('row(LAY_table_equipment)', function(obj) {
- var data = obj.data;
- // 设新变量存储右边列表的所有数据(源数据+选择的一条数据)
- var dataBak = [];
- // 源数据
- tableBak = table.cache.LAY_table_equipment_choose;
- // 去重
- for (var i = 0; i < tableBak.length; i++) {
- if (tableBak[i].id == data.id) {
- layer.msg("请勿重复添加!", {icon : 0,time : 1500});
- } else {
- dataBak.push(tableBak[i]);
- }
- }
- dataBak.push(data);
- tableBak = dataBak;
- // 表格重载
- table.reload("LAY_table_equipment_choose", {
- data : dataBak,
- })
- // 表格选中样式
- obj.tr.addClass('layui-table-click').siblings().removeClass('layui-table-click');
- });
注意:
- tableBak = table.cache.LAY_table_equipment_choose;
- table.cache.表格ID获取的是表格当页的所有数据,如果分页的话需要注意。
Layui表格之动态添加数据(表格多选解决方案)的更多相关文章
- SPA项目开发之动态树+数据表格+分页
SPA项目开发之动态树+数据表格+分页 动态生成NavMenu导航菜单(只支持2级菜单) <el-menu key="" index=""> < ...
- ASP.NET网页动态添加数据行
一看到这标题<ASP.NET网页动态添加数据行>,想起来似乎有点难实现.因为网页的周期性原因,往往在PostBack之后,状态难于有所保留.但Insus.NET又想实现这样的效果,用户点击 ...
- 关于devexpress报表XtraReport,动态修改报表样式(.repx格式),动态添加数据并使用的理解
一.基本概念: XtraReports 中的每个报表都由 XtraRepot 类的一个实例表示,或者由该类的子类来表示(这种情况更常见). 因此,每个报表都作为带区的容器使用,而每个带区中都包含报表控 ...
- js表单动态添加数据并提交
情景1:已经存在form对象了,动态为form增加对象并提交 function formAppendSubmit(){ var myform=$('#newArticleForm'); //得到for ...
- 【javascript 动态添加数据到 HTML 页面】
今天简单的学习了一下有关对象字面量的定义和 javascript 如何取出对象字面量的值的知识,javascript 动态添加数据到 HTML 页面的问题. [学习目标]有如下的一组数据通过 Ajax ...
- 第27讲 UI组件之 ScrollView与底部动态添加数据
第27讲 UI组件之 ScrollView与底部动态添加数据 1. ScrollView(滚动视图) ScrollView(滚动视图)是实现滚动的一个控件,只需要将需要滚动的控件添加到ScrollVi ...
- Android之ListView动态添加数据(SQLiteOpenHelper类添加数据)
一.SQLiteOpenHelper类: 这次我们通过sqlite来动态添加数据,接下来我们创建一个openHelper.java,在前面sqlite博客中我们已经详细的讲了SQLite的创建及使用等 ...
- Jquery+Ajax实现Select动态添加数据
https://blog.csdn.net/zhengxiangwen/article/details/46480687 最近在工作中,遇到了一个关于select的问题.一般情况下,select下拉框 ...
- MiniUI动态添加table表格
本文将介绍一下,如何用Jquery MiniUi动态添加一行table表格 1.效果展示 ↓ 2.具体代码 <script type="text/javascript"> ...
随机推荐
- 利用Redis Sentinel实现redis主从自动切换
redis主从配置很简单,只需要在slave的配置里加slaveof 192.168.0.100 6379(master的ip和端口) 如果master有密码再设置 masterauth passwo ...
- Maven的-pl -am -amd参数学习
昨天maven的deploy任务需要只选择单个模块并且把它依赖的模块一起打包,第一时间便想到了-pl参数,然后就开始处理,但是因为之前只看了一下命令的介绍,竟然花了近半小时才完全跑通,故记录此文. 假 ...
- 洛谷 P4552 [Poetize6] IncDec Sequence【差分+脑洞】
一看区间操作,很容易想到差分 所以就是先差分,然后为了保证最小步数,把政府差分抵消,也就相当于原数组区间加减 第二问,因为差分数组抵消之后不为0就需要使用n+1的虚拟位置,而这个的值其实没有,所以我们 ...
- bzoj 4481: [Jsoi2015]非诚勿扰【期望+树状数组】
首先很容易计算对于一个如意郎君列表里有x个男性的女性,编号排第i位的男性被选的概率是 \[ p*(1-p)^{i-1}+p*(1-p)^{i-1+n}+p*(1-p)^{i-1+n}+- \] \[ ...
- springboot(四)拦截器和全局异常捕捉
github代码:https://github.com/showkawa/springBoot_2017/tree/master/spb-demo/spb-brian-query-service 全部 ...
- 洛谷 P1966 火柴排队
题目描述 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度. 现在将每盒中的火柴各自排成一列, 同一列火柴的高度互不相同, 两列火柴之间的距离定义为:∑(ai−bi)2 其中ai 表示 ...
- Manven下载
1.下载地址:http://maven.apache.org/download.cgi 2.点击下载链接 3.解压zip到安装路径 我的:C:\Progr ...
- CF1140G Double Tree
题解 首先如果我们要确定出每个\(dis_{i \to i+1 , i \in odd}\) 这个可以用两遍树形\(DP\)来解决 一遍是考虑走子树子树绕过来的 一遍是考虑从走祖先绕过来的 然后就可以 ...
- [2010国家集训队]Crash的旅游计划
Description 眼看着假期就要到了,Crash由于长期切题而感到无聊了,因此他决定利用这个假期和好友陶陶一起出去旅游. Crash和陶陶所要去的城市里有N (N > 1) 个景点,Cra ...
- framework7 点取消后还提交表单解决方案
$$('form.ajax-submit').on('submitted', function (e) { var xhr = e.detail.xhr; // actual XHR object v ...