Layui禁止表格部分复选框,layui禁止表格自带第一列复选框,layui禁止表格部分复选框,layui获取表格复选框选中数据

40 篇文章 0 订阅
30 篇文章 4 订阅

前言

禁止某些行可以勾选操作,及选中后的操作和行操作

效果

在这里插入图片描述

实现

执行一个table示例

<table id="data_table" class="layui-hide" lay-filter="data_table"></table>

cols 的第一列就是需要重写的复选框

table.render({
	elem : '#data_table',
	id : 'data_table',
	url : ctxPath+'sys/user/select',
	title : '数据列表',
	height:'full-60', // 可视自适应
	//size:"sm",
	limit: 15, // 默认页数,非页码
	limits: [10, 15, 20, 40, 30, 50, 60, 70, 80, 90, 100],
	page : true,
	toolbar : "#toolberLeft", // 表头按钮
	cols : [[
		// {type : 'checkbox'}, // , fixed : 'left' , // 浮动
		{
			templet: "#toolCheck",
			title: '<input type="checkbox" name="layTableAllChoose" lay-skin="primary" lay-filter="layTableAllChoose">',
			minWidth: 40,
		},
		{field : 'id', title : '照片', align : 'center', minWidth: '80',
			templet: function (d) {
                var src = ctxPath+d.img+"?v="+Math.random();
                return '<img width="45" style="border-radius: 5px;" height="45" id="img_'+d.id+'" src="'+src+'" οnerrοr="errorImg(this)"/>';
			}
		},
		{field : 'name', title : '姓名', minWidth: '80', align : 'center'},
		{field : 'sex', title : '性别', minWidth: '80', sort : true, align : 'center',
			templet: function (d) {
				if(d.sex == 1){
					return '男'
				}else if(d.sex == 2){
					return '女'
				}else {
					return '其他';
				}
			}, hide: false // 不显示
		},
		{field : '', align : 'center', minWidth: '180', title : '操作', toolbar : '#toolRow'} // 操作
	]]
	,done:function(result,currPage,count){ // 表格加载完毕回调
		tempTableList = result.data;
	}
});

其中templet: "#toolCheck"的标签块

<script type="text/html" id="toolCheck">
    {{#  if(d.powerCount <= 0){ }}
        <input type="checkbox" name="layTableCheckbox" lay-skin="primary">
    {{#  } }}
</script>

监听全选重写

form.on("checkbox(layTableAllChoose)", function () {
	var status = $(this).prop("checked");
	$.each($("input[name=layTableCheckbox]"), function (i, value) {
		$(this).prop("checked", status);
	});
	form.render();
});

获取复选框选中的值,tempTableList当前列表返回的数组

var arr = [];
$.each($("input[name=layTableCheckbox]:checked"), function (i, value) {
	var index = $(this).parents('tr').attr('data-index');
	arr.push(tempTableList[Number(index)].id);
});
arr.join(",") // 转成逗号隔开字符串

以上即可!

下面是其他相关的使用

监听行复选框点击(如果没有重写复选框就可以用)

table.on('checkbox(data_table)', function(obj){
	var checkStatus = table.checkStatus('data_table');
	var checkList = checkStatus.data;

});

示例表格中的toolbar : “#toolberLeft”, // 表头按钮

标签块

<script type="text/html" id="toolberLeft">
    <div class="layui-form">
        <a class="layui-btn layui-btn-sm layui-btn-primary" lay-event="add"><i class="layui-icon">&#xe654;</i>新增</a>
        <a class="layui-btn layui-btn-sm layui-btn-primary layui-border-blue" lay-event="edit"><i class="layui-icon">&#xe642;</i>修改</a>
        <a class="layui-btn layui-btn-sm layui-btn-primary layui-border-red" lay-event="delete"><i class="layui-icon">&#xe640;</i>删除</a>
        <a class="layui-btn layui-btn-sm layui-btn-primary layui-border-blue" lay-event="search"><i class="layui-icon">&#xe615;</i>搜索</a>
    </div>
</script>

js中

table.on('toolbar(data_table)',  function(obj) {
	if (obj.event === 'search') {

	}else if(obj.event === 'add'){

	}else if(obj.event === 'edit'){
		var checkStatus = table.checkStatus('data_table');
		//checkStatus.data[0].id // 选中的行

	}else if(obj.event === 'delete'){
		var checkStatus = table.checkStatus('data_table');
		//checkStatus.data // 选中的集
	}
})

示例表格中的toolbar : ‘#toolRow’// 操作

标签块

<script type="text/html" id="toolRow">
    <a class="lay-table-btn" lay-event="detail"><i class="layui-icon">&#xe705;</i>查看</a>
    {{#  if(d.powerCount <= 0){ }}
        <a class="lay-table-btn" lay-event="edit"><i class="layui-icon">&#xe642;</i>修改</a>
        <a class="lay-table-btn" lay-event="del"><i class="layui-icon">&#xe640;</i>删除</a>
    {{#  } }}
</script>

js中

table.on('tool(data_table)',  function(obj) {
	var data = obj.data; // 行对象数据
	if (obj.event === 'del') {
		
	} else if (obj.event === 'edit') {
		
	} else if (obj.event === 'detail') {
		
	}
});
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值