layer弹出子iframe层 父子页面传值的方法


 

1. 父页面

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>折扣管理</title>
        <link rel="icon" type="image/x-icon" href="../images/Strawberry.png"/>
        <link rel="stylesheet" type="text/css" href="../../../layui/css/layui.css"/>
        <link rel="stylesheet" type="text/css" href="../css/index.css"/>
    </head>
    <body>
        <div class="topContent">
            <div class="title">折扣配置</div>
            <div id="fatherTest"></div>
            <div class="btn">新增折扣</div>
        </div>
        <div class="content">
            
            <div class="form" id="form">
                <form class="layui-form" action="">
                    <div class="layui-form-item">
                        <label class="layui-form-label">城市大类</label>
                        <select name="city" lay-verify="">
                          <option value="">请选择一个城市</option>
                          <option value="010">北京</option>
                          <option value="021">上海</option>
                          <option value="0571">杭州</option>
                        </select> 
                    </div>
                    <div class="layui-form-item">
                       <label class="layui-form-label">输入框</label>
                       <div class="layui-input-block">
                          <input type="text" name="title" required  lay-verify="required" placeholder="请输入标题" autocomplete="off" class="layui-input">
                        </div>
                    </div>
                </form>
            </div>
        </div>
        <script src="../../../layui/layui.js"></script>
        <script src="../../../js/jquery-3.4.1.min.js"></script>
        <script type="text/javascript"> layui.use('form', function(){ var form = layui.form; //监听提交
                  form.on('submit(formDemo)', function(data){ layer.msg(JSON.stringify(data.field)); return false; }); $('.btn').click(function(){ layer.open({ type: 2,//type: 2 为iframe层
                        title: '我是子页面', shadeClose: true, shade: 0.8, area: ['60%', '50%'], content: 'son.html' , //这里content是一个URL,如果你不想让iframe出现滚动条,你还可以content: ['http://sentsin.com', 'no']
                        btn: ['确定', '取消'] , yes:function(index,layero){ /*$(layero).find("iframe").eq(0).contents();多个iframe层使用才使用eq , * 需要先找到iframe,才能得到iframe里面的其他元素来进行传值取值 */
                           
                           //获取子页面元素 -- $("iframe").contents().find("子页面id名")
                           var father = $(layero).find("iframe").contents(); //找到父页面中的第一个input传给子页面
                           var form = $('#form').find('input').eq(0).val(); father.find("#sonTest").html('父页面选择的值是---'+ form); }, success:function(){ //调用子页面的方法 -- $('iframe')[0].contentWindow.方法名();
                            $('iframe')[0].contentWindow.funSon() } }); }) }); function funFather(){ alert('我是父页面的方法,我被调用了') } </script>
    </body>
</html>

 

2.子页面

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>新增折扣管理</title>
        <link rel="icon" type="image/x-icon" href="../images/Strawberry.png"/>
        <link rel="stylesheet" type="text/css" href="../../../layui/css/layui.css"/>
        <link rel="stylesheet" type="text/css" href="../css/index.css"/>
    </head>
    <body>
        <div class="topContent">
        </div>
        <div class="content">
            <div id="sonTest"></div>
            <div class="form" id="sonForm">
                <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="title" required  lay-verify="required" placeholder="请输入标题" autocomplete="off" class="layui-input">
                        </div>
                    </div>
                      <button id="define">点击传给父页面</button>
                </form>
            </div>
        </div>
        
        <script src="../../../layui/layui.js"></script>
        <script src="../../../js/jquery-3.4.1.min.js"></script>
        <script type="text/javascript"> layui.use('form', function(){ var form = layui.form; //监听提交
              form.on('submit(formDemo)', function(data){ layer.msg(JSON.stringify(data.field)); return false; }); }); $('#define').click(function(){ var sonForm = $('#sonForm').find('input').val();
//获取父页面元素 -- $("父页面id名",window.parent.document) $("#fatherTest",window.parent.document).html('子页面选择的值是' + sonForm);
//调用父页面的方法 -- parent.方法名(); parent.funFather(); }); function funSon(){ alert('我是子页面的方法,我被调用了') } </script> </body> </html>

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM