禁用layui树形表格的多选框checkbox

1. 背景

在使用树形表格渲染数据时,需要对数据进行批量操作。相对于选中数据后,再做错误提示。直接把数据的多选框禁用掉更加直观。

2. 实现

     DisabledTableCheckBox: () => {
         // 获取所有行 
         var tableElem = $(".layui-table-fixed-l");
         var rows = tableElem.find('tr');
         for (var i = 1; i < rows.length; i++) {
             var row = rows[i];
             // 检查行是否包含非根节点的标志(例如,parentId不为空)
             if (row.getAttribute('data-level') == 0) {
                 // 找到行内的checkbox
                 var checkbox = row.querySelector('input[type="checkbox"]');
                 // 禁用checkbox 
                 checkbox.setAttribute("disabled", true);
                 row.setAttribute("title", "根节点不能审核!");
                 // 可以添加类来改变外观,表明它被禁用了
                 checkbox.classList.add('layui-disabled');
             }
         }

     }// 渲染表格 

调用点

                tableRender: function () {
                    var self = this;
                    treeTable.render({
                        elem: "#WorkList",
                        limit: 100000,
                        cols: [[ //标题栏
                            { type: "numbers", fixed: 'left' },
                            { type: "checkbox", fixed: 'left', },

                        ]],
                        tree: {
                            customName: {
                                children: "ChildList",
                                name: "Name"
                            },
                            data: {
                                rootPid: "10",
                                cascade: "none"
                            },
                            callback: {
                                onExpand: function () {
                                    format.init();
                                    self.DisabledTableCheckBox();//调用点
                                }
                            }
                        },
                        done: function (res) {
                            format.init();

                            $(".expandAll").on("click", function () {
                                treeTable.expandAll("WorkList", true);
                                format.init();
                                self.DisabledTableCheckBox();//调用点
                            })
                            $(".foldAll").on("click", function () {
                                treeTable.expandAll("WorkList", false);
                                format.init();
                            });
                        }
                    });

3. 效果图

父节点被禁用,

4. 总结

在对以上代码实现过程中,遇到的两个问题。

1. layui表格的渲染过程后,会出现三个tbody,所以

      代码 var tableElem = $(".layui-table-fixed-l"); 而不是var tableElem = $(".workList“)来获取表格DOM元素。

2. 在对父节点禁用,同时添加鼠标悬浮提示信息时,title属性添加在div元素上,而不是input元素。

相关推荐

  1. Vue <el-checkbox-group>回显问题

    2024-06-08 11:52:04       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-08 11:52:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-08 11:52:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-08 11:52:04       87 阅读
  4. Python语言-面向对象

    2024-06-08 11:52:04       96 阅读

热门阅读

  1. 【讯为Linux驱动开发】4.文件私有数据

    2024-06-08 11:52:04       29 阅读
  2. 自动化喷涂生产线方案四

    2024-06-08 11:52:04       23 阅读
  3. 大数据如何更好地助力乡村振兴战略的实施?

    2024-06-08 11:52:04       31 阅读
  4. 快速删除 node_modules

    2024-06-08 11:52:04       33 阅读
  5. Transformer 内部原理学习

    2024-06-08 11:52:04       17 阅读
  6. c++ 简单的日志类 CCLog

    2024-06-08 11:52:04       24 阅读