前端技术 手机教程
程序开发 平面动画
系统软件 CMS教程
CMS教程 在线手册
资源下载 网络安全
精准搜索请尝试:精确搜索

layer通过parent.layer.open打开的窗体向父窗体传值

2019-09-10 15:39:38 来源:原创 作者:寂静的神经

在“layer子窗体关闭后向父窗体传值的办法”一文中我们介绍了在layer子窗体向父窗体传值的办法。但是有的时候,我们需要实现layer子窗体大于父窗体的效果,这种情况下我们的弹窗代码是parent.layer.open而不是layer.open,这时篇头文章中的办法是无效的。那么要怎么实现layer子窗体大于父窗体并能通过子窗体向父窗体传值呢?具体方法如下:

假设有页面A,B,C。其中A为主页面、B为A中通过layer.open弹出的子窗体,C为在B窗体中通过parent.layer.open弹出的子窗体,那么现在C窗体已经可以大于B窗体了,我们要解决的就是C窗体向B窗体传值,其实就是篇头文章的一种变通做法。

1.A页面中定义回调函数:


function callback(id){
    $('#layui-layer-iframe1').contents().find('#number').val(id);
}

说明,layui-layer-iframe1为通过审查代码获得的layer.open的B窗体ID,经过反复查看确认不会变化,是固定值,这段代码的意思就是当回调函数执行时,将B窗体中id为number的文本框值设置为传过来的参数id。

2.B窗体中要接受传值的html代码:


<input type="text" class="form-control" id="number" name="number" value="">

3.C窗体中的函数调用代码:


function select(id){
    parent.callback(id);
    var index = parent.layer.getFrameIndex(window.name);
    parent.layer.close(index);
}

说明:C窗体中的回调代码,执行该函数后回调A页面中的函数callback。

总结:其实就是要理解layer弹出层之间的关系,因为通过parent.layer.open的方式打开弹窗C,所以实际上C弹窗的父页面是A,因此执行回调函数要写到A中,然后再通过A的回调函数向B窗体中写入数据即可。

本文关键词:open layer 传值 parent

相关文章

零五网,分享IT知识,国内顶级IT知识门户网站。

Copyright (C) www.02405.com, All Rights Reserved.

零五网 版权所有 辽ICP备13002105号-1