IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> layui复选框跨页回显 -> 正文阅读

[JavaScript知识库]layui复选框跨页回显

全局JS声明变量

var checkDatas = [];//选中的数据
var dataArr= [];//当前页面数据
var eqVal='lineId';

监听的复选框函数

table.on('checkbox(test)', function(obj) {
            let  checked = obj.checked; //当前选择的状态,是否选中
            let  tempAllCheckDatas=[];  //存放所有页面选中数据的id
            if(checked){
                if( obj.type == 'one'){
                    checkDatas.push(obj.data);//选中,直接向ids push当前选中的数据
                    checkDatas.forEach(row=>{
                        tempAllCheckDatas.push(row[eqVal])
                    })
                }
                else{
                    checkDatas.forEach(row=>{
                        tempAllCheckDatas.push(row[eqVal])
                    })
                    for(var i=0;i<dataArr.length;i++){
                        if(tempAllCheckDatas.indexOf(dataArr[i][eqVal])<0){
                            tempAllCheckDatas.push(dataArr[i][eqVal])
                            checkDatas.push(dataArr[i])
                        }
                    }

                }
            }
            else{
                if(obj.type == 'one'){
                    checkDatas.map((item, index) => {//取消选择,循环判断是否相等,相等就删除
                        if (obj.data.eqVal == item.eqVal) {
                            checkDatas.splice(index, 1);
                        }
                    })
                }
            	else{
                    dataArr.forEach(row=>{
                        for(let i=0;i<checkDatas.length;i++){
                            if(checkDatas[i][eqVal]==row[eqVal]){
                                checkDatas.splice(i, 1);
                            }
                        }
                    })
                }
            }
            //console.log(checkDatas);
            //console.log(dataArr);
        });

table的渲染处理

table.render({
            elem: '#LAY_table_id(你的tableId)',
            url: (你的接口链接)
            ,defaultToolbar:[]
            ,toolbar: '#toolbarHtml' //开启头部工具栏
            ,title: '用户数据表',
            cols: [
                [
                    {checkbox: true, fixed: true},
                    {
                        title: '序号',
                        width: 80,
                        sort: true,
                        fixed: true,
                        type: 'numbers'
                    },{
                    field: 'lineId',
                    title: '线路id',
                    sort: true,
                    width: 110,
                    hide:true
                   }
                 ]
            ]
			,done: function(res, curr, count) {
			                dataArr = res.data;
			                set();
			 }
 });

抽取的回显函数

function set(){
            var len = dataArr.length;//当前页面数据长度
            var chooseNum = 0; //记录当前页选中的数据行数
            for (var i = 0; i < dataArr.length; i++) {
                for (var j = 0; j < checkDatas.length; j++) {
                    if(dataArr[i][eqVal] === checkDatas[j][eqVal]){
                        dataArr[i]["LAY_CHECKED"] = 'true';
                        var index=i;
                        $('.layui-table tr[data-index=' + i + '] input[type="checkbox"]').prop('checked', true);
                        $('.layui-table tr[data-index=' + i + '] input[type="checkbox"]').next().addClass('layui-form-checked');
                        chooseNum++;
                    }
                }
            }
            //console.log(len)
            //console.log(chooseNum)

            if (len !== 0 && chooseNum === len) {   //表示该页全选  --  全选按钮样式回显
                alert("本页已被全选")
                $(' .layui-table-header tr  input[lay-filter="layTableAllChoose"]').prop('checked', true);
                $(' .layui-table-header tr  input[lay-filter="layTableAllChoose"]').next().addClass('layui-form-checked');
            }
        };

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-10 11:48:02  更:2022-05-10 11:48:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:34:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码