layui: 子iframe关闭/传值/刷新父页面

https://www.cnblogs.com/jiqing9006/p/5135697.html

父层

<div class="col-xs-4 text-left" style="padding-left: 50px;"><button type="button" class="btn btn-success" onclick="addCategory();">添加</button></div>

  

点击添加,按钮,执行添加方法

function addCategory() {
    layer.open({
        title:‘<img src="{sh::RES}image/add.gif"> 添加分类‘,
        type: 2,
        area: [‘700px‘, ‘530px‘],
        fix: false, //不固定
        maxmin: true,
        content: ‘{sh::U("Mall/editcategory")}‘,
        success:function(layero,index){
        },
        end:function(){
            var handle_status = $("#handle_status").val();
            if ( handle_status == ‘1‘ ) {
                layer.msg(‘添加成功!‘,{
                    icon: 1,
                    time: 2000 //2秒关闭(如果不配置,默认是3秒)
                },function(){
                    history.go(0);
                });
            } else if ( handle_status == ‘2‘ ) {
                layer.msg(‘添加失败!‘,{
                    icon: 2,
                    time: 2000 //2秒关闭(如果不配置,默认是3秒)
                },function(){
                    history.go(0);
                });
            }
        }
    });
}

  

这个方法,打开一个iframe页面,页面中可以执行一些操作,添加分类,执行完毕后调用一个end方法。这个方法,很有用!

不管执行结果如果,都会调用。

iframe可以传递参数到父页面。

end方法,根据传递的结果,执行一些后续操作。

iframe层

<div class="content">
    <form action="" method="post" id="myform" enctype="multipart/form-data">
        <div class="form-group row">
            <div class="left col-xs-3 text-right">
            <label for="">名称:</label>
            </div>
            <div class="right col-xs-8 text-left">
            <input type="text" class="form-control" id="name" name="name" placeholder="">
            </div>
        </div>

        <div class="form-group row">
            <div class="left col-xs-3 text-right">
            <label for="">类别:</label>
            </div>
            <div class="right col-xs-8 text-left">
            <input type="text" class="form-control" id="name" name="name" placeholder="">
            </div>
        </div>

        <div class="form-group row">
            <div class="left col-xs-3 text-right">
            <label for="">图标:</label>
            </div>
            <div class="right col-xs-8 text-left">
            <input type="file" id="logo" name="logo">
            </div>
        </div>

        <div class="form-group row">
            <div class="left col-xs-3 text-right">
            <label for="">启用:</label>
            </div>
            <div class="right col-xs-8 text-left">
            <input name="status" type="checkbox" checked="checked"> 启用
            </div>
        </div>
        <div class="form-group text-center submit">
            <button type="submit" class="btn btn-primary ">提交</button>
        </div>
    </form>
    </div>

  

表单提交,提交到后台(表单提交,刷新iframe层页面)

<script type="text/javascript">
        var index = parent.layer.getFrameIndex(window.name);
        var success = ‘{sh:$success}‘;
        if ( success == ‘1‘ ) {
            parent.$("#handle_status").val(‘1‘);
              parent.layer.close(index);
        } else if( success == ‘2‘ ) {
            parent.$("#handle_status").val(‘2‘);
            parent.layer.close(index);
        }
    </script>

  

收到执行的结果,success,成功是1,失败是2。执行相应的操作。也就是,

传值+关闭iframe层。

父层有一个隐藏的元素,专门用来接收传值的

<input id="handle_status" value="" hidden="hidden">

  

流程很清晰。

layer很牛逼!

原文地址:https://www.cnblogs.com/achengmu/p/9685879.html

时间: 2024-11-07 13:12:26

layui: 子iframe关闭/传值/刷新父页面的相关文章

WPF 子窗体关闭,刷新父窗体

父窗体代码 private void DGUserEdit() { if(DGUser.SelectedItem!=null) { DataRow dr = (DGUser.SelectedItem as DataRowView).Row; Page.UserEdit UE = new UserEdit(UserGrade, dr["UserName"].ToString());//声明子窗体 UE.Closed += new EventHandler(UE_Closed);//注册关

javascript 跨域子窗口关闭并刷新父窗口

//实现javascript 跨域子窗口关闭并刷新父窗口 function winOpen(url){            var win=window.open(url,'','height=480,width=670,top=300,left=300,toolbar=no,menubar=no,scrollbars=yes,resizable=yes,location=no,status=no');              setInterval((function(win){retur

微信子页面关闭后刷新父页面

前段时间开发微信公众号时,需要用到从编辑页面点击保存后,跳转到列表页面后并刷新,网上找了好多 function f_close(){ if(typeof(WeixinJSBridge)!="undefined"){ //WeixinJSBridge.call('closeWindow'); history.go(-1); }else{ if (navigator.userAgent.indexOf("MSIE") > 0) { if (navigator.us

Layer弹出层关闭后刷新父页面

API地址:http://layer.layui.com/api.html#end 调用END回调方法: end - 层销毁后触发的回调 类型:Function,默认:null 无论是确认还是取消,只要层被销毁了,end都会执行,不携带任何参数. function updateStock(id) { //iframe层 parent.layer.open({ type: 2, title: '修改', shadeClose: false, //点击遮罩关闭 shade: 0.8, area: [

js window.open()打开的页面关闭后刷新父页面

function test(){ var winObj = window.open(URL); var loop = setInterval(function(){ if(winObj.closed){ clearInterval(loop); parent.location.reload(); } },1); }

js刷新父页面的方法

1.父页面弹出窗口,关闭弹窗刷新父页面 window.parent.location.reload(); 2.父页面打开新的浏览器窗口,关闭新的浏览器窗口,刷新父页面的方法 window.opener.location.reload(); 3.退回上一次页面 window.close();--------------关闭当前页 window.history.back(-1);-----------------回退上一次访问页面 原文地址:https://www.cnblogs.com/xplj2

菜鸟解决“子页面关闭刷新父页面局部”问题的历程

引子 昨天晚上做一个项目,遇到的一个问题,这个项目是一个在线考试系统,新建一份试卷的页面,要添加一些试题策略.点击添加试题策略,弹出添加策略的页面,策略编辑好之后提交,添加策略页关闭,当前添加试题页面策略列表刷新.那么就遇到一个问题,在“添加试卷页”中点击“添加策略”按钮弹出添加策略页,添加策略后,父页面只能局部刷新(整体刷新会丢掉页面输入框未保存的数据). 综上总结,浓缩成一句话啊,就是“父页面打开子页面,子页面完成操作后触发父页面的事件.” 过程 我在百度和必应里面搜一下,很多解决方案是用w

iframe子页面内刷新父页面中另一个iframe子页面

框架页面如下: <div id="aa" style="float: left; height: 500px; border-right-style: solid; border-right-color: #CCCCFF; border-right-width: 2px;"> <IFRAME id="tree" name="tree" src="/ScienProjectWeb/commonjsp/

jquery Jbox 插件实现弹出窗口在修改的数据之后,关闭弹出窗口刷新父页面的问题

http://blog.csdn.net/nsdnresponsibility/article/details/51282797 问题如题: 这里我们在父页面定义一个全局的变量来标识是否需要刷新父页面(声明:下图中点击保存页面之后,不关闭子页面):点击1出弹出窗口: 我们的目的是:如果,用户保存过数据:在点击关闭按钮和2处所指的小X时,刷新父列表页面:若果用户没有保存过数据,关闭窗口是不刷新父列表页面. //这里是父页面(列表页面) var isFreshFlag="1";<%-