如下图,在列表中加入复选框之后,有些数据不需要在选择,需要屏蔽或者禁用掉。layui没有提供相应的功能,需要自己扩展。
在页面上添加一个按钮,layui是根据js来添加,注意 table 中的 lay-filter="productparameter_filter" 和按钮标签上的 getCheckData 后面根据productparameter_filter 来操作
<table id="productparameterinfo" class="layui-hide" lay-filter="productparameter_filter"></table>
<script type="text/html" id="toolbar_plat"> <div class="layui-btn-container"><button class="layui-btn layui-btn-sm lay_bnt_border " lay-event="getCheckData">批量审核</button> </div> </script>
在layui的table.render 中 字段加上checkbox
{ type: 'checkbox', width: 48 }
然后子自定义条件等
, done: function (res) { var state = ""; for (var i in res.data) { var item = res.data[i]; if(item.examine_state == "T") {// 这里是判断需要禁用的条件(如:状态为0的) // checkbox 根据条件设置不可选中 $('tr[data-index=' + i + '] input[type="checkbox"]').prop('disabled', true); state = "1";// 隐藏表头全选判断状态 form.render();// 重新渲染一下 } } //判断条件 if (state == "1") { // 如果当前页有审核的不允许全选 checkbox // $('th[data-field=0] div').replaceWith('<div class="layui-table-cell laytable-cell-5-0-0"><span></span></div>'); $('th[data-field=0] div input[type="checkbox"]').prop('disabled', true); } else { //翻页显示全选按钮 checkbox $('th[data-field=0] div').replaceWith('<div class="layui-table-cell laytable-cell-1-0-0 laytable-cell-checkbox"><input type="checkbox" name="layTableCheckbox" lay-skin="primary" lay-filter="layTableAllChoose"><div class="layui-unselect layui-form-checkbox" lay-skin="primary"><i class="layui-icon layui-icon-ok"></i></div></div>'); } form.render();// 重新渲染一下 }
选择之后获取选取的数据
//触发事件--新增 表头上方按钮(工具栏) table.on('toolbar(productparameter_filter)', function (obj) { var checkStatus = table.checkStatus(obj.config.id); switch (obj.event) { case 'getCheckData': var data = checkStatus.data; var clickIDArr = new Array(); for (m in checkStatus.data) { clickIDArr[m] = checkStatus.data[m]["guid"] } console.log("选中列表" + clickIDArr ); if(clickIDArr.length == 0) { layer.alert("请选择要审核的数据"); return false; } //TODO..操作数据 break; } });
到此就完成一个页面渲染到复选框选择后提交的过程;