Layui之table中的radio在切换分页时无法记住选中状态的解决方法


Posted in Javascript onSeptember 02, 2019

情景描述

Layui数据表格中用到了表单元素radio,在当前页面选中radio状态,并同步更新到保存表格中所有的数据的数组中(获取表格中的所有数据并保存到数组中),再点击分页组件中的下一页、上一页、跳转按钮进行切换另外一个页面,然后在切换回之前的页面,会发现在以前页面上radio状态全部恢复默认了,我们当然是希望能保存住前一页radio的选中状态。

我写项目遇到的一个的情况:在第一页选中的radio的状态,点击下一页按钮切换到第二页,然后再点击上一页切换会第一页,第一页中的radio状态就恢复默认了。

原因分析

点击分页组件中的小组件进行切换页面时,渲染切换到的目标页面所使用的数据并不是更新后的tableContent中的数据,而是使用的table模块缓存中的数据,而我们只更新完tableContent中的数据时它并不会同步更新table模块缓存中的数据,所以导致了切换页面的时候无法记住radio的状态。

解决办法

弄清楚问题原因解决起来就很简单了,只需要再点击radio的时候,同步更新tableContent中的数据和table模块缓存中的数据就可以了(数据是放在table的cache属性中的,如下图)。

数据表格

Layui之table中的radio在切换分页时无法记住选中状态的解决方法

table中的数据

Layui之table中的radio在切换分页时无法记住选中状态的解决方法

代码

layui.use(['form','layer','element','table','laypage'],function(){
 var form = layui.form;
 var layer = layui.layer;
 var element = layui.element;
 var table = layui.table;
 var laypage = layui.laypage;

 // 存储数据表格中的原始数据也就是索引键信息
 var tableContent = new Array();

 // 监听数据表格中的radio,更新原始数据数据中的radio状态,同时更新数据表格的缓存
 form.on('radio(sortRadio)',function(data){
 console.log(data);
 console.log(data.elem); //得到radio原始DOM对象
 console.log(data.value); //被点击的radio的value值

 var radioValue = data.value;

 // 获取customId
 var radioName = $(data.elem).attr('name');
 var tempArr = radioName.split('-');
 var customId = parseInt(tempArr[1]);

 console.table(tableContent);

 // 将选择的排序方式更新到原始数据数组中
 $.each(tableContent,function(index,data){
  if (data.customId === customId) {
   data.indexOrder = radioValue;
  }
 });

 console.log(table);
 console.table(tableContent);

 // 更新缓存中的排序方式
 var cacheData = table.cache.indexKeyTable;
 $.each(cacheData,function(index,data){
  if (data.customId === customId) {
   data.indexOrder = radioValue;
  }
 });
 console.table(table.cache.indexKeyTable);

 });
})

以上这篇Layui之table中的radio在切换分页时无法记住选中状态的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用jscript实现新建和保存一个word文档
Jun 15 Javascript
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
Aug 19 Javascript
番茄的表单验证类代码修改版
Jul 18 Javascript
js实现页面打印功能实例代码(附去页眉页脚功能代码)
Dec 15 Javascript
javascript实现 百度翻译 可折叠的分享按钮列表
Mar 12 Javascript
一个简单的JavaScript Map实例(分享)
Aug 03 Javascript
基于js中的原型、继承的一些想法
Aug 10 Javascript
JavaScript严格模式详解
Jan 16 Javascript
AngularJS 前台分页实现的示例代码
Jun 07 Javascript
微信小程序中this.data与this.setData的区别详解
Sep 17 Javascript
微信小程序websocket聊天室的实现示例代码
Feb 12 Javascript
JS获取动态添加元素的方法详解
Jul 31 Javascript
layui表格分页 记录勾选的实例
Sep 02 #Javascript
layui radio点击事件实现input显示和隐藏的例子
Sep 02 #Javascript
layui复选框的全选与取消实现方法
Sep 02 #Javascript
解决Vue调用springboot接口403跨域问题
Sep 02 #Javascript
layui 动态设置checbox 选中状态的例子
Sep 02 #Javascript
layui之table checkbox初始化时选中对应选项的方法
Sep 02 #Javascript
微信小程序 简易计算器实现代码实例
Sep 02 #Javascript
You might like
一个可以删除字符串中HTML标记的PHP函数
2006/10/09 PHP
PHP读取XML值的代码(推荐)
2011/01/01 PHP
php的日期处理函数及uchome的function_coomon中日期处理函数的研究
2011/01/12 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
关于Curl在Swoole协程中的解决方案详析
2019/09/12 PHP
潜说js对象和数组
2011/05/25 Javascript
node模块机制与异步处理详解
2016/03/13 Javascript
JS回调函数基本定义与用法实例分析
2017/05/24 Javascript
angularjs+bootstrap实现自定义分页的实例代码
2017/06/19 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
2018/02/24 jQuery
Vuejs在v-for中,利用index来对第一项添加class的方法
2018/03/03 Javascript
在vue中使用v-bind:class的选项卡方法
2018/09/27 Javascript
vue-cli 打包后提交到线上出现 "Uncaught SyntaxError:Unexpected token" 报错
2018/11/06 Javascript
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
Vue路由 重定向和别名的区别说明
2020/09/09 Javascript
python自动化测试实例解析
2014/09/28 Python
深入理解python中的select模块
2017/04/23 Python
python django 实现验证码的功能实例代码
2017/05/18 Python
Tensorflow使用tfrecord输入数据格式
2018/06/19 Python
python根据txt文本批量创建文件夹
2020/12/08 Python
python实现祝福弹窗效果
2019/04/07 Python
Jmeter HTTPS接口测试证书导入过程图解
2020/07/22 Python
Python结合Window计划任务监测邮件的示例代码
2020/08/05 Python
Scrapy爬虫文件批量运行的实现
2020/09/30 Python
python处理写入数据代码讲解
2020/10/22 Python
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
TOWER London官网:鞋子、靴子、运动鞋等
2019/07/14 全球购物
教育实习生的自我评价分享
2013/11/21 职场文书
教师新年寄语
2014/04/03 职场文书
优秀护士演讲稿
2014/04/30 职场文书
争先创优演讲稿
2014/09/15 职场文书
民政局未婚证明
2015/06/15 职场文书
重阳节活动主持词
2015/07/04 职场文书
学校少先队工作总结
2015/08/12 职场文书
新娘婚礼答谢词
2015/09/29 职场文书
优秀毕业生主要事迹材料
2015/11/04 职场文书