Layui关闭弹窗返回值的两种方式(一)

        根据实际操作小编遇到的返回值方式是两种:

1、直接操作打开的窗口获取值

2、操作弹窗打开的子页面返回值

        下面就讲解两个实例,以作总结,以不变应万变:

一、直接操作打开的窗口获取值

        Layui内有两种点击事件,第一种是jquery中的click方式第二种是按钮监听组的方式,上篇已经做过讲解了,此处不再做过多赘述。废话不多说,直接贴例子总结:

        场景:点击input框弹窗显示列表,关闭弹窗选择值填入inout框内。即点击图一到图二的场景

                                                                              图一 input框

                                                                                          图二 弹窗

1、html页面代码

<div class="layui-row layui-col-xs8">
    <label style="margin-top: -1.5%;" class="layui-form-label">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <span class="myspan">*</span>涉案部门及案件性质</label>
    <input class="layui-col-xs6 layui-input myDialog" type="text" id="caseNature" name="caseNature" required lay-verify="required" style="width: 75%;" placeholder="请选择涉案部门及案件性质" autocomplete="off" data-type="selectCaseNature">
</div>

2、js代码

        此处同样还是用的按钮监听组激活弹窗的方式。

 var panelaction = {
    selectCaseNature:function () {//选择涉案部门属性
        var tit = '涉案部门性质';
        var url = 'case_nature.html';
        var index = larryms.open({
            title: tit,
            type: 2,
            shadeClose: false,
            area: ['763px', '460px'],
            content: url,
            btn: ['确定','关闭'],
            yes: function(index){
                //当点击‘确定'按钮的时候,获取弹出层返回的值
                var iframeWindow = window['layui-layer-iframe'+ index];
                var checkStatus = iframeWindow.layui.table.checkStatus('case_nature');
                var data = checkStatus.data;
                if(data.length==1){
                    layer.msg(data[0].caseNature);
                    $("#caseNature").html(data[0].caseNature);
                }else{
                    layer.msg("请选择一个值!");
                }
                //最后关闭弹出层
                layer.close(index);
            },
            cancel: function(){
                //右上角关闭回调
            }
        });
    }
}

        做一下总结,先通过var iframeWindow锁定当前的弹窗,然后再通过checkStatus获取状态,再一句状态的obj锁定data属性来做数据逻辑的判断以及操作。

3、此处为了方便自己使用,子页面也做一下记录

3-1 html页面

        此处一定要把要操作的放在“内容了”和“内容结束哦”两标签之内,因为不加的话弹窗样式会不好看(此处仅针对我本地做描述,各位看官按照自己的情况调样式即可)

    <!-- 面板 -->
    <div class="layui-row larryms-panel">
        <div class="larry-container">
            <div class="layui-row layui-col-space15 larryms-data-top">
                <div class="layui-col-xs12 layui-col-sm12 layui-col-md12 layui-col-lg12">
                    <section class="layui-card">
                        <!-- <div class="layui-card-header">涉案人员列表</div>-->
                        <div class="layui-card-body">
                            <!-- 内容了 -->
                            <table id="case_nature" name="case_nature" lay-filter="case_nature" data-url="../../../../larryms/data/letters_query.json"></table>
                            <!-- 内容结束哦 -->
                        </div>
                    </section>
                </div>
            </div>
        </div>
    </div>

3-2 js 代码

        即一个控制列表展示的js。

var table;
var larryms;
layui.define(['jquery', 'table', 'larryms','forms'], function(exports) {
    var $ = layui.$,
        forms = layui.forms;
    table = layui.table;
    larryms = layui.larryms;


    //接收案件
    var mUrl_accept = $('#case_nature').data('url');
    //mUrl = dataportal_caseQuery;
    mIns_accept = table.render({
        elem: '#case_nature',
        id: "case_nature",
        cellMinWidth: 95,
        url: mUrl_accept,
        method: 'get',
        height: "full-100",
        page: true,
        limits: [15, 30, 45, 60, 75, 90, 105, 120],
        limit: 15,
        response: { //定义后端 json 格式,详细参见官方文档
            statusName: 'code', //状态字段名称
            statusCode: 200, //状态字段成功值
            msgName: 'msg', //消息字段
            countName: 'count', //总数字段
            dataName: 'data' //数据字段
        },
        cols: [
            [
                {
                    type: "radio",
                    fixed: 'center',
                    width: 60
                },
                {
                    type: "numbers",
                    fixed: 'center',
                    title: '序号',
                    width: 60
                }, {
                    field: 'caseNature',
                    title: '性质',
                    minWidth: 100,
                    align: 'center'
            }]
        ]
    });


});

        由于篇幅过长,第二种方法置于下一面文章进行总结讲解。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值