layui数据表格中插入下拉框以及输入框,日期选择等

在数据表格中插入动态数据的下拉框,输入框,日期选择框等需要在table的表头中进行配置,增加template,插入对应的块,在html中使用 script 标签包裹起来

如果使用的下拉框数据需要动态获取,在数据表格中的done函数发送请求,进行处理

详情请看如下代码

HTML部分

//表格
<div class="layui-tab-content layui-tab-content-bor used_table">
	<table id="table-list" class="layui-table" lay-filter="table-list"></table>
</div>
//表格操作列
<script type="text/html" id="auth-state">
	<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="delete">删除</a>
</script>

//使用人插入
<script type="text/html" id="selectEducation">
	<select name="select_user[]" class="select_user" autocomplete="off" lay-search="">
		<option value = "">请选择</option>
	</select>
</script>
//资产位置插入
<script type="text/html" id="inputAddress">
	<input type="text" class="layui-input" name="input_address[]">
</script>

//申请数量插入
<script type="text/html" id="inputNum" class="usedNum">
	<input class="used_num" name="input_num[]" type="number" min="1" value="1">
</script>
//归还日期插入
<script type="text/html" id="returnTime">
	<input type="text" class="layui-input" name="return_time[]" id="returnData" placeholder="请选择时间">
</script>
//申请类型插入
<script type="text/html" id="selectType">
	<select name="select_type[]" class="select_type" autocomplete="off" lay-search="">
		<option value="1">领用</option>
		<option value="2">借用</option>
	</select>
</script>

JS部分

<script>
layui.use(['form', 'layedit','formSelects', 'table', 'laydate'], function() {
	var form = layui.form,
		layer = layui.layer,
		laydate = layui.laydate;
		table = layui.table;

	var tableCol = []
	var tableCol = new Array()

	/* 表格列 */
	tableCol = [
		{
			field: 'sku_code',
			title: 'sku编号',
			align: 'center'
		},
		{
			field: 'spec_name',
			align: 'center',
			title: '产品名称',
		},
		{
			field: 'user',
			align: 'center',
			title: '使用人',
			templet:'#selectEducation',
			width:120
		},
		{
			field: 'position',
			align: 'center',
			title: '资产位置',
			templet:'#inputAddress',
		},
		{
			field: 'apply_type_name',
			title: '申请类型',
			align: 'center',
			templet:'#selectType'
		},
		{
			field: 'return_date',
			align: 'center',
			title: '归还日期',
			templet:'#returnTime'
		},
		{
			field: 'num',
			align: 'center',
			title: '申请数量',
			templet:'#inputNum'
		},
		{
			field: 'stock_num',
			align: 'center',
			title: '可用库存量'
		},
		{
			templet: '#auth-state',
			align: 'center',
			title: '操作'
		}
	]
	/* 表格渲染 */
	table.render({
		id: 'table-list',
		elem: '#table-list',
		data: removeDuplicate(layui.data('cart_used').data),
		cols: [
			tableCol
		],
		done: function(res, curr, count) {
			//使用人下拉框得数据是动态得
			tabData = res.data;
			layer.closeAll('loading');
			$.ajax({
				url:'/home/common/userList',
				data:{
					is_all: 0
				},
				dataType:'json',
				type:'POST',
				success:function(res){
					var opt = '<option value = "">请选择</option>';
					$.each(res.data, function(item, val) {  
						opt += '<option value = "' + val.uid + '">' + val.name + '</option>'
					});
					$(".select_user").html(opt);
					form.render('select');
				},
				error:function(){
					layer.msg('请求超时请联系管理员',{icon:2});
				},
				async: false
			})
		}
	});
})

</script>
layui数据表格使用下拉框,可以通过两种方式实现:一种是使用表格的编辑功能,另一种是使用自定义列模板。 1. 使用表格的编辑功能: - 首先,在表格的列定义,设置需要使用下拉框的列的edit属性为"text",表示该列可编辑。 - 然后,在表格数据,为需要使用下拉框的列设置一个lay-verify属性,用于校验输入的值。 - 最后,在表格的渲染时,调用form.render()方法,使下拉框生效。 2. 使用自定义列模板: - 首先,在表格的列定义,设置需要使用下拉框的列的templet属性为一个函数,用于自定义列的显示内容。 - 在该函数,可以通过返回一个HTML字符串来定义下拉框的HTML结构,并绑定相应的事件处理函数。 - 最后,在表格的渲染时,调用form.render()方法,使下拉框生效。 下面是一个示例代码,演示了如何在layui数据表格使用下拉框: ```javascript // HTML部分 <table id="demo" lay-filter="test"></table> // JavaScript部分 layui.use(['table', 'form'], function(){ var table = layui.table; var form = layui.form; // 渲染表格 table.render({ elem: '#demo', url: '/api/data', cols: [[ {field: 'id', title: 'ID', width: 80}, {field: 'name', title: '姓名', edit: 'text'}, {field: 'gender', title: '性别', templet: '#genderTpl'} ]], page: true }); // 自定义列模板 var genderTpl = function(d){ var options = '<option value="男">男</option><option value="女">女</option>'; return '<select lay-filter="gender" lay-verify="required">' + options + '</select>'; }; // 将模板注册到layui的模板引擎 layui.laytpl(genderTpl).render({}, function(html){ $('#genderTpl').html(html); }); // 监听下拉框的change事件 form.on('select(gender)', function(data){ console.log(data.value); // 获取选的值 }); // 渲染表单 form.render(); }); ``` 在上述示例,通过设置edit属性为"text",实现了姓名列的编辑功能;通过设置templet属性为一个函数,实现了性别列的自定义列模板。同时,通过监听下拉框的change事件,可以获取选的值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值