在“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代码:
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窗体中写入数据即可。
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《layer通过parent.layer.open打开的窗体向父窗体传值》
文章链接:https://www.liuzhanwu.com/3415.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
文章名称:《layer通过parent.layer.open打开的窗体向父窗体传值》
文章链接:https://www.liuzhanwu.com/3415.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
相关推荐
456CDN:为网络安全与加速保驾护航,CDN测评推荐
456CDN:高防CDN,200GB DDoS防护,无视CC,1TB流量@50Mbps带宽,500元/月,安全加速,智能守护,稳定安全
#618大促#最后一天|凌霞软件旗下新一代服务器面板 1Panel:永久授权 539元起,10台4900元,即买即赠SSL证书
#618大促#最后一天|凌霞软件旗下强大易用的建站工具 Halo:永久授权 660元起,10台6000元,即买即赠SSL证书
#6.18促销#Themebetter:WordPress主题特惠7折,DUX主题折后559元,不限制域名授权数目
耗子Linux 面板:又一个轻量 Linux 服务器运维管理面板
#11.11#Themebetter:年度大放价,全场6折特惠,DUX主题折后480元,不限制域名授权数目
紧急提醒:DediPath官宣跑路