搜狐网站建设,怎么注册网站网址,公司企业宣传片,怎样做自己的vip解析网站在项目开发中遇到table框已经选择过的数据不支持二次选择从而要禁用复选框不许选中#xff0c;但会导致复选框全选时layui的table组件源码中赋值时是根据全部复选框的下标顺序来赋值到数组中返回给你#xff0c;这样已被禁用复选框的数据也会被push到数组中导致数据错乱…在项目开发中遇到table框已经选择过的数据不支持二次选择从而要禁用复选框不许选中但会导致复选框全选时layui的table组件源码中赋值时是根据全部复选框的下标顺序来赋值到数组中返回给你这样已被禁用复选框的数据也会被push到数组中导致数据错乱本layui 版本为2.4.5现解决方案如下找到layui的table.js源码文件
第一步 找到下面代码块
// 找到该代码块
a.elem.on(click, input[namelayTableCheckbox], function () {var e t(this).prev(), i a.layBody.find(input[namelayTableCheckbox]),l e.parents(tr).eq(0).data(index), n e[0].checked,o layTableAllChoose e.attr(lay-filter);o ? (i.each(function (e, t) {t.checked n, a.setCheckData(e, n)}), a.syncCheckAll(), a.renderForm(checkbox)) : (a.setCheckData(l, n), a.syncCheckAll()), layui.event.call(e[0], u, checkbox( p ), v.call(e[0], {checked: n,type: o ? all : one}))})第二部 在第一步的代码快下面添加
a.elem.on(click, input[namecheckChooseAll], function () {var e t(this).prev(), i a.layBody.find(input[namecheckChooseAll]),l e.parents(tr).eq(0).data(index), n e[0].checked,o tableCheckChooseAll e.attr(lay-filter);var _i a.layBody.find(input[namelayTableCheckbox]);if(o){i.each(function (e, i) {var idx t(i).parents(tr).attr(data-index);i.checked n, a.setCheckData(idx, n)});(_i.each(function (e, i) {var idx t(i).parents(tr).attr(data-index);i.checked n, a.setCheckData(idx, n)}), a.syncCheckAll(), a.renderForm(checkbox))}else {var id e.data(id);var idName e.data(idKey);var bc a.layBody.find([data-check-id id ]);(bc.each(function (e, t) {t.checked n;}), a.renderForm(checkbox));var r d.cache[a.key];t.each(r, function (idx, ee) {if (ee[idName] id) {a.setCheckData(idx, n)}});}layui.event.call(e[0], u, checkbox( p ), v.call(e[0], {checked: n,type: o ? all : one}))})第三步 回到你渲染table数据的js中修改checkbox其中注意data-id的值与data-id-key的字段需要一致因在第一步代码块中有做判断处理 {field: choosePatient,width: 60,align: center,title: input typecheckbox namecheckChooseAll lay-skinprimary lay-filtertableCheckChooseAll,templet: function (d) {return input typecheckbox lay-skinprimary classcheck-all namecheckChooseAll data-id d.drugsInfo data-id-keydrugsInfo}}