Layui监听事件实现新增功能

要使用layui.layer弹出新增模态框,首先准备好模态框要显示的内容:

<div id="modStaff" style="display: none;">

        <div class="layui-col-lg9 layui-col-md9 layui-col-sm9 layui-col-md-offset1">

            <form id="formStaff" class="layui-form" action="${ctx}/servlet/StaffServlet">

                <div class="layui-form-item">

                    <label class="layui-form-label">编号</label>

                    <div class="layui-input-block">

                        <input type="text" name="staffNum" required lay-verify="required"

                                autocomplete="off" class="layui-input" readonly="readonly">

                    </div>

                </div>

                <div class="layui-form-item">

                    <label class="layui-form-label">姓名</label>

                    <div class="layui-input-block">

                        <input type="text" name="staffMC" required lay-verify="required"

                                autocomplete="off" class="layui-input">

                    </div>

                </div>

                <div class="layui-form-item" style="text-align: center;margin-left: 18%;">

                    <div class="layui-btn-container">

                        <button type="button" class="layui-btn" lay-submit

id="btn" onclick="formSubmit();"> 保存</button>

                    </div>

                </div>

            </form>            

        </div>

</div>

然后加载Layui监听头部工具栏事件,当点击加号事件时,弹出新增模态框并自动生成编号:

table.on('toolbar(test)', function(obj){

        var checkStatus = table.checkStatus(obj.config.id),

            data = checkStatus.data; //获取选中的数据

           switch(obj.event){

                case 'add':

                $("#formStaff").resetForm();//重置表单

              var rowIndex = table.cache.test.length;//获取表格数据条数

                rowIndex = Number(rowIndex - 1);//获取最后一条数据索引

                if (rowIndex > -1) {

                    var num = table.cache.test[rowIndex].staffNum;//根据索引获取最后一条数据编号

                    var len = 4;           

                    num = Number(num) + Number(1);

                    num = num.toString();

                    while(num.length < len){

                        num = "0" + num;

                    }

                    $("#formStaff [name='staffNum']").val(num);                                              layer.open({

                            type: 1,//类型

                            title: '<i class="layui-icon layui-icon-add-1"> 新增员工信息</i>',

                            offset: ['5%','30%'],

                            area:['660px','560px'],//定义宽和高

                            shadeClose:false,//点击遮罩层关闭

                            content: $("#modStaff")//打开的内容

                          });

                      }                   

                break;

            }

    });

代码运行效果如图:

    填入员工姓名,点击保存按钮调用下面方法,提交form表单保存数据到数据库,完成新增功能。

    function formSubmit(){

        $("#formStaff").ajaxSubmit(function(jsonObject){

            data = JSON.parse(jsonObject);

            if (data.state) {

                modHide();

                layer.alert(data.msg, { icon : 1, title : '提示' },function(layerIndex){

                    layer.close(layerIndex);

                    table.reload();

                });

            } else {

                layer.msg(data.msg);

            }

        }

    }

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
layUI表格的新增和修改功能可以通过弹出层来实现。具体步骤如下: 1. 在layUI表格中添加操作列,包含“编辑”和“删除”按钮等; 2. 给“编辑”按钮绑定事件点击后弹出一个弹出层,用于填写数据; 3. 在弹出层中添加表单,包含需要填写的数据项; 4. 给表单中的“确定”按钮绑定事件点击后将数据提交到后台并更新表格数据; 5. 给“删除”按钮绑定事件点击后弹出确认框,确认后将数据删除并更新表格数据。 示例代码如下: HTML代码: ```html <table class="layui-table" lay-data="{url:'/api/data', page:true, limit:10}" lay-filter="demo"> <thead> <tr> <th lay-data="{field:'id', width:80}">ID</th> <th lay-data="{field:'name', width:120}">名称</th> <th lay-data="{field:'type', width:80}">类型</th> <th lay-data="{field:'remark', width:200}">备注</th> <th lay-data="{field:'operate', toolbar:'#operateTpl', width:150}">操作</th> </tr> </thead> </table> <!--操作列模板--> <script type="text/html" id="operateTpl"> <button class="layui-btn layui-btn-xs" lay-event="edit">编辑</button> <button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="delete">删除</button> </script> <!--弹窗模板--> <div id="formTpl" style="display:none;"> <form class="layui-form" action=""> <div class="layui-form-item"> <label class="layui-form-label">名称</label> <div class="layui-input-block"> <input type="text" name="name" lay-verify="required" placeholder="请输入名称" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">类型</label> <div class="layui-input-block"> <input type="text" name="type" lay-verify="required" placeholder="请输入类型" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item layui-form-text"> <label class="layui-form-label">备注</label> <div class="layui-input-block"> <textarea name="remark" placeholder="请输入备注" class="layui-textarea"></textarea> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="submitForm">确定</button> </div> </div> </form> </div> ``` JavaScript代码: ```javascript //执行渲染 layui.use(['table', 'layer', 'form'], function(){ var table = layui.table, layer = layui.layer, form = layui.form; //监听表格操作列按钮点击事件 table.on('tool(demo)', function(obj){ var data = obj.data; if(obj.event === 'edit'){ //编辑 //弹出编辑弹窗 var index = layer.open({ type: 1, title: '编辑', area: ['500px', '400px'], content: $('#formTpl').html(), success: function(layero, index){ //填充弹窗表单数据 form.val('form', data); } }); //监听弹窗表单提交事件 form.on('submit(submitForm)', function(formData){ //提交表单数据到后台 $.ajax({ url: '/api/update', type: 'POST', data: formData.field, success: function(){ layer.close(index); table.reload('demo'); } }); return false; }); } else if(obj.event === 'delete'){ //删除 layer.confirm('确认删除该数据吗?', function(index){ //提交删除请求到后台 $.ajax({ url: '/api/delete', type: 'POST', data: {id: data.id}, success: function(){ layer.close(index); table.reload('demo'); } }); }); } }); }); ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值