layui点击按钮给table添加一行

  • 问题描述:想实现点击按钮在表格添加一行的功能,但发现layuii并未集成该工具栏,因此,需要自己手动添加这个功能;
  • 原先我写的table是这样实现的:
    $("#addTable").click(function(){
    			       var tr=" <tr>"+
    			    	     "  <td>11</td>"+
    			    	     "  <td>22</td>"+
    			    	     "  <td>33</td>"+
    			    	     "  <td>44</td>"+
    			    	     "  <td>55</td>"+
    			    	     "  </tr>";                  
    					$(".layui-table").append(tr);
    				});
    并不能实现添加的效果;后查询后发现,这样做是基于table是用静态的方式编写的,即:
    <table class="layui-table" lay-data="{height:315, url:'/demo/table/user/', page:true, id:'tableInfo'}" lay-filter="test">
    			  	<thead>
    				    <tr>
    				      <th lay-data="{field:'id', width:80, sort: true}">ID</th>
    				      <th lay-data="{field:'username', width:80}">用户名</th>
    				      <th lay-data="{field:'sex', width:80, sort: true}">性别</th>
    				      <th lay-data="{field:'city'}">城市</th>
    				      <th lay-data="{field:'sign'}">签名</th>
    				      <th lay-data="{field:'experience', sort: true}">积分</th>
    				      <th lay-data="{field:'score', sort: true}">评分</th>
    				      <th lay-data="{field:'classify'}">职业</th>
    				      <th lay-data="{field:'wealth', sort: true}">财富</th>
    				    </tr>
    				  </thead>
    				</table>
    而我用的是这样的方式:
    <table class="layui-hide" id="baseInfo"  lay-filter="demo" lay-data="{height: 'full-200', cellMinWidth: 80, page: true, limit:30}"></table>
    关于列名的定义是写在table.render({})方法中的

  • 解决方案:将table改写成静态的方式即可,即第二部分代码
  • 此时出现新问题:每点击一次会出现两条数据,应做如下修改:
    $(".layui-table-body .layui-table").append(tr);
    最后即可实现点击按钮新增一条数据的效果。


可以使用 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()` 方法重新渲染下拉框组件。同时,我们需要监听保存和取消按钮的点击事件,来处理相应的逻辑。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值