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 相关文章推荐
非常漂亮的JS代码经典广告
Oct 21 Javascript
加速IE的Javascript document输出的方法
Dec 02 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
Apr 08 Javascript
javascript实现详细时间提醒信息效果的方法
Mar 11 Javascript
javascript绘制漂亮的心型线效果完整实例
Feb 02 Javascript
实例讲解jQuery中对事件的命名空间的运用
May 24 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
Nov 23 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
Sep 03 jQuery
vue循环数组改变点击文字的颜色
Oct 14 Javascript
vue设置一开始进入的页面教程
Oct 28 Javascript
如何在node环境实现“get数据解析”代码实例
Jul 03 Javascript
JavaScript实现H5接金币功能(实例代码)
Feb 22 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
php 缓存函数代码
2008/08/27 PHP
PHP数据库链接类(PDO+Access)实例分享
2013/12/05 PHP
php smarty truncate UTF8乱码问题解决办法
2014/06/13 PHP
PHP和C#可共用的可逆加密算法详解
2015/10/26 PHP
PHP引用返回用法示例
2016/05/28 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
2016/08/19 PHP
javascript 事件绑定问题
2011/01/01 Javascript
jquery实现文字由下到上循环滚动的实例代码
2013/08/09 Javascript
jQuery中width()方法用法实例
2014/12/24 Javascript
jQuery中removeAttr()方法用法实例
2015/01/05 Javascript
js实现文本框选中的方法
2015/05/26 Javascript
JavaScript中string对象
2015/06/12 Javascript
angularjs学习笔记之双向数据绑定
2015/09/26 Javascript
Backbone.js框架中Model与Collection的使用实例
2016/05/07 Javascript
微信小程序网络请求的封装与填坑之路
2017/04/01 Javascript
JS简单判断字符在另一个字符串中出现次数的2种常用方法
2017/04/20 Javascript
Vue.extend构造器的详解
2017/07/17 Javascript
浅谈Node异步编程的机制
2017/10/18 Javascript
vue系列之requireJs中引入vue-router的方法
2018/07/18 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
Linux下使用python调用top命令获得CPU利用率
2015/03/10 Python
python通过自定义isnumber函数判断字符串是否为数字的方法
2015/04/23 Python
Python Flask 搭建微信小程序后台详解
2019/05/06 Python
python实现二级登陆菜单及安装过程
2019/06/21 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
python多项式拟合之np.polyfit 和 np.polyld详解
2020/02/18 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
2020/06/17 Python
基于HTML5+Webkit实现树叶飘落动画
2017/12/28 HTML / CSS
英国折扣高尔夫商店:Discount Golf Store
2019/11/19 全球购物
Gibson London官网:以地道的英国男装而著称
2019/12/06 全球购物
Jar包的作用是什么
2014/03/30 面试题
家居饰品店创业计划书
2014/01/31 职场文书
央视元宵晚会主持串词
2014/03/25 职场文书
网络信息安全承诺书
2014/03/26 职场文书
十佳标兵事迹材料
2014/08/18 职场文书
配置nginx负载均衡
2022/05/06 Servers