layui table点击按钮添加、删除一行

layui table点击按钮添加、删除一行

好久没发东西了,今天说一下最近学到的东西吧。

首先这一篇是layui table点击按钮动态添加、删除一行的实现。

当然别的也可以,比如添加div之类的,只是这里以layui table来举例。

layui table有多种渲染方式,由于方法渲染table的动态添加没有很好的实现,所以这里只说静态表格自动渲染


table

<table class="layui-table" id="table" lay-filter="table">
	<thead>
		<tr>
			<td>姓名</td>
			<td>性别</td>
			<td>操作</td>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td><input type="text" class="layui-input" name="uName"></td>
			<td>
				<select>
					<option value=""></option>
					<option value="0"></option>
					<option value="1"></option>
				</select>
			</td>
			<td>
				<a class="layui-btn layui-btn-xs add">添加</a>
				<a class="layui-btn layui-btn-danger layui-btn-xs del">删除</a>
			</td>
		</tr>
	</tbody>
</table>

添加一行

//因为动态添加的元素class属性是无效的,所以不能用$('.add').click(function(){});
$('body').on('click', '.add', function() {
    //你要添加的html
    var html = '<tr>'+
			'<td><input type="text" class="layui-input" name="uName"></td>'+
			'<td>'+
				'<select>'+
					'<option value=""></option>'+
					'<option value="0">女</option>'+
					'<option value="1">男</option>'+
				'</select>'+
			'</td>'+
			'<td>'+
				'<a class="layui-btn layui-btn-xs add">添加</a>'+
				'<a class="layui-btn layui-btn-danger layui-btn-xs del">删除</a>'+
			'</td>'+
		'</tr>';
    //添加到表格最后
    $(html).appendTo($('#table tbody:last'));
    form.render();//因为有select元素,所有添加后要重新渲染一次
});

删除一行

$('body').on('click', '.del', function() {
	if ($('#table tbody tr').length === 1) {
		layer.msg('只有一条不允许删除。', {
			time : 2000
		});
	} else {
        //删除当前按钮所在的tr
		$(this).closest('tr').remove();
	}
});

以上就是动态添加一行、删除一行的实现过程。

需要注意的是:

  1. layui form元素需要重新渲染才显示
  2. 如果为添加、删除按钮绑定点击事件是使用$('.class').click(function() {});这种方式的话,动态添加的元素是无效的,需要使用$('body').on('click', '.class', function() {})的方式绑定事件
  • 9
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
可以使用 layui 的表单组件来实现具有下拉框的一行新增操作。下面是一个简单的示例代码: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Layui Table Demo</title> <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.min.css"> </head> <body> <table class="layui-table" lay-filter="demo"> <thead> <tr> <th>ID</th> <th>名称</th> <th>操作</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>测试1</td> <td><a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a></td> </tr> <tr> <td>2</td> <td>测试2</td> <td><a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a></td> </tr> </tbody> </table> <script src="https://cdn.staticfile.org/layui/2.5.6/layui.min.js"></script> <script> layui.use(['table', 'form'], function(){ var table = layui.table; var form = layui.form; // 监听表格中的操作按钮 table.on('tool(demo)', function(obj){ var data = obj.data; if(obj.event === 'del'){ layer.confirm('确定删除该数据?', function(index){ obj.del(); layer.close(index); }); } }); // 监听新增按钮 $('.add-btn').click(function(){ var html = '<tr>\ <td></td>\ <td>\ <select name="name" lay-verify="required">\ <option value="">请选择</option>\ <option value="测试3">测试3</option>\ <option value="测试4">测试4</option>\ <option value="测试5">测试5</option>\ </select>\ </td>\ <td>\ <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="save">保存</a>\ <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="cancel">取消</a>\ </td>\ </tr>'; $('tbody').append(html); form.render(); }); // 监听保存和取消按钮 table.on('tool(demo)', function(obj){ var data = obj.data; if(obj.event === 'save'){ // TODO: 处理保存事件 } else if (obj.event === 'cancel') { obj.del(); } }); }); </script> </body> </html> ``` 在表格中新增一行时,我们需要动态插入一行 HTML 代码,并使用 `form.render()` 方法重新渲染下拉框组件。同时,我们需要监听保存和取消按钮的点事件,来处理相应的逻辑。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值