前言:

Layui已经给出了多选记录的解决方案,是在每条数据的前面加上CheckBox,每次选择都有监听。效果是这样:

实现监听的代码如下,这是一种解决选择多条数据的方案:

  1. table.on('edit(test)', function(obj){ //注:edit是固定事件名,test是table原始容器的属性 lay-filter="对应的值"
  2. console.log(obj.value); //得到修改后的值
  3. console.log(obj.field); //当前编辑的字段名
  4. console.log(obj.data); //所在行的所有相关数据
  5. });

本文记录的是我使用的另一种解决方案,即展示两个表格。详细需求如下:

需求:

1、页面展示两个表格,左边表格展示所有数据,右边是一个空表格展示已经选中的数据。

2、当点击左边数据表格某条记录,右边表格动态添加这条记录。

3、表单提交的时候直接提交右边表格所有数据。

这样就实现了记录多选,相对比较直观。

实现效果:

实现步骤分析:

1、既然提交的是右边表格的数据,是动态添加的,说明是不断变化的数据集合,所以应该设为变量。

2、当点击左边的表格数据,应该获取当前这条数据和右边表格的所有数据,将当前行数据添加到右边的集合变量中。

3、进行表格重载,刷新右边的表格。

代码参考:

  1. // 设置变量存储已选择列表的数据
  2. var tableBak = [];
  3. // 监听表格点击事件
  4. table.on('row(LAY_table_equipment)', function(obj) {
  5.   var data = obj.data;
  6.   // 设新变量存储右边列表的所有数据(源数据+选择的一条数据)
  7.   var dataBak = [];
  8.   // 源数据
  9.   tableBak = table.cache.LAY_table_equipment_choose;
  10.   // 去重
  11.   for (var i = 0; i < tableBak.length; i++) {
  12.     if (tableBak[i].id == data.id) {
  13.       layer.msg("请勿重复添加!", {icon : 0,time : 1500});
  14.     } else {
  15.       dataBak.push(tableBak[i]);
  16.     }
  17.   }
  18.   dataBak.push(data);
  19.   tableBak = dataBak;
  20.   // 表格重载
  21.   table.reload("LAY_table_equipment_choose", {
  22.     data : dataBak,
  23.   })
  24.   // 表格选中样式
  25.   obj.tr.addClass('layui-table-click').siblings().removeClass('layui-table-click');
  26. });

注意:

  1. tableBak = table.cache.LAY_table_equipment_choose;
  1. table.cache.表格ID获取的是表格当页的所有数据,如果分页的话需要注意。

Layui表格之动态添加数据(表格多选解决方案)的更多相关文章

  1. SPA项目开发之动态树+数据表格+分页

    SPA项目开发之动态树+数据表格+分页 动态生成NavMenu导航菜单(只支持2级菜单) <el-menu key="" index=""> < ...

  2. ASP.NET网页动态添加数据行

    一看到这标题<ASP.NET网页动态添加数据行>,想起来似乎有点难实现.因为网页的周期性原因,往往在PostBack之后,状态难于有所保留.但Insus.NET又想实现这样的效果,用户点击 ...

  3. 关于devexpress报表XtraReport,动态修改报表样式(.repx格式),动态添加数据并使用的理解

    一.基本概念: XtraReports 中的每个报表都由 XtraRepot 类的一个实例表示,或者由该类的子类来表示(这种情况更常见). 因此,每个报表都作为带区的容器使用,而每个带区中都包含报表控 ...

  4. js表单动态添加数据并提交

    情景1:已经存在form对象了,动态为form增加对象并提交 function formAppendSubmit(){ var myform=$('#newArticleForm'); //得到for ...

  5. 【javascript 动态添加数据到 HTML 页面】

    今天简单的学习了一下有关对象字面量的定义和 javascript 如何取出对象字面量的值的知识,javascript 动态添加数据到 HTML 页面的问题. [学习目标]有如下的一组数据通过 Ajax ...

  6. 第27讲 UI组件之 ScrollView与底部动态添加数据

    第27讲 UI组件之 ScrollView与底部动态添加数据 1. ScrollView(滚动视图) ScrollView(滚动视图)是实现滚动的一个控件,只需要将需要滚动的控件添加到ScrollVi ...

  7. Android之ListView动态添加数据(SQLiteOpenHelper类添加数据)

    一.SQLiteOpenHelper类: 这次我们通过sqlite来动态添加数据,接下来我们创建一个openHelper.java,在前面sqlite博客中我们已经详细的讲了SQLite的创建及使用等 ...

  8. Jquery+Ajax实现Select动态添加数据

    https://blog.csdn.net/zhengxiangwen/article/details/46480687 最近在工作中,遇到了一个关于select的问题.一般情况下,select下拉框 ...

  9. MiniUI动态添加table表格

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

随机推荐

  1. 利用Redis Sentinel实现redis主从自动切换

    redis主从配置很简单,只需要在slave的配置里加slaveof 192.168.0.100 6379(master的ip和端口) 如果master有密码再设置 masterauth passwo ...

  2. Maven的-pl -am -amd参数学习

    昨天maven的deploy任务需要只选择单个模块并且把它依赖的模块一起打包,第一时间便想到了-pl参数,然后就开始处理,但是因为之前只看了一下命令的介绍,竟然花了近半小时才完全跑通,故记录此文. 假 ...

  3. 洛谷 P4552 [Poetize6] IncDec Sequence【差分+脑洞】

    一看区间操作,很容易想到差分 所以就是先差分,然后为了保证最小步数,把政府差分抵消,也就相当于原数组区间加减 第二问,因为差分数组抵消之后不为0就需要使用n+1的虚拟位置,而这个的值其实没有,所以我们 ...

  4. bzoj 4481: [Jsoi2015]非诚勿扰【期望+树状数组】

    首先很容易计算对于一个如意郎君列表里有x个男性的女性,编号排第i位的男性被选的概率是 \[ p*(1-p)^{i-1}+p*(1-p)^{i-1+n}+p*(1-p)^{i-1+n}+- \] \[ ...

  5. springboot(四)拦截器和全局异常捕捉

    github代码:https://github.com/showkawa/springBoot_2017/tree/master/spb-demo/spb-brian-query-service 全部 ...

  6. 洛谷 P1966 火柴排队

    题目描述 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度. 现在将每盒中的火柴各自排成一列, 同一列火柴的高度互不相同, 两列火柴之间的距离定义为:∑(ai​−bi​)2 其中ai​ 表示 ...

  7. Manven下载

        1.下载地址:http://maven.apache.org/download.cgi          2.点击下载链接          3.解压zip到安装路径  我的:C:\Progr ...

  8. CF1140G Double Tree

    题解 首先如果我们要确定出每个\(dis_{i \to i+1 , i \in odd}\) 这个可以用两遍树形\(DP\)来解决 一遍是考虑走子树子树绕过来的 一遍是考虑从走祖先绕过来的 然后就可以 ...

  9. [2010国家集训队]Crash的旅游计划

    Description 眼看着假期就要到了,Crash由于长期切题而感到无聊了,因此他决定利用这个假期和好友陶陶一起出去旅游. Crash和陶陶所要去的城市里有N (N > 1) 个景点,Cra ...

  10. framework7 点取消后还提交表单解决方案

    $$('form.ajax-submit').on('submitted', function (e) { var xhr = e.detail.xhr; // actual XHR object v ...