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 小数取整的函数
May 10 Javascript
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
Mar 05 Javascript
基于KMP算法JavaScript的实现方法分析
May 03 Javascript
js图片预加载示例
Apr 30 Javascript
JS读写CSS样式的方法汇总
Aug 16 Javascript
JavaScript省市区三级联动菜单效果
Sep 21 Javascript
yarn的使用与升级Node.js的方法详解
Jun 04 Javascript
ES6 javascript的异步操作实例详解
Oct 30 Javascript
微信小程序实现图片懒加载的示例代码
Dec 13 Javascript
JS实现常见的查找、排序、去重算法示例
May 21 Javascript
vue-cli3.0 环境变量与模式配置方法
Nov 08 Javascript
Node.js+Express+Mysql 实现增删改查
Apr 03 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
详细介绍:Apache+PHP+MySQL配置攻略
2006/09/05 PHP
解析thinkphp中的导入文件标签
2013/06/20 PHP
php+ajax实现图片文件上传功能实例
2014/06/17 PHP
js资料prototype 属性
2007/03/13 Javascript
jQuery ctrl+Enter shift+Enter实现代码
2010/02/07 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
JavaScript实现非常简单实用的下拉菜单效果
2015/08/27 Javascript
Nodejs实战心得之eventproxy模块控制并发
2015/10/27 NodeJs
BootStrap下拉菜单和滚动监听插件实现代码
2016/09/26 Javascript
纯原生js实现table表格的增删
2017/01/05 Javascript
vue-cli的webpack模板项目配置文件分析
2017/04/01 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
2017/06/08 jQuery
JS时间控制实现动态效果的实例讲解
2017/07/31 Javascript
基于require.js的使用(实例讲解)
2017/09/07 Javascript
vue watch关于对象内的属性监听
2019/04/22 Javascript
Vue开发之封装上传文件组件与用法示例
2019/04/25 Javascript
jquery实现直播弹幕效果
2019/11/28 jQuery
nodejs制作小爬虫功能示例
2020/02/24 NodeJs
VUE前端从后台请求过来的数据进行转换数据结构操作
2020/11/11 Javascript
python 简单照相机调用系统摄像头实现方法 pygame
2018/08/03 Python
使用Python写一个量化股票提醒系统
2018/08/22 Python
python自动化测试之异常及日志操作实例分析
2019/11/09 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
Python解释器以及PyCharm的安装教程图文详解
2020/02/26 Python
python写文件时覆盖原来的实例方法
2020/07/22 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
2021/02/24 Python
伦敦一家西班牙童装精品店:La Coqueta
2018/02/02 全球购物
美国顶级水上运动专业店:Marine Products
2018/04/15 全球购物
Christys’ Hats官网:英国帽子制造商
2018/11/28 全球购物
车间班组长的职责
2013/12/13 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
股东出资证明书范例
2014/10/04 职场文书
征求意见函
2015/06/05 职场文书
C3 线性化算法与 MRO之Python中的多继承
2021/10/05 Python