在iframed窗中可以访问到父页面,在API里的典型例子是
var index = parentlayergetFrameIndex(windowname); //获取窗口索引
类似地,在d窗的html中,你可以通过如下语句获取父页面某容器的值:
parent$('#父页面元素id')val();
所以你只需在d窗open之前(在父页面的html代码中)先把值放在一个容器里(比如input),然后就可以在d窗的html代码里用上述的script获取这个值并输出。这个容器可以放在一个隐藏的modal里面,对访问者完全不可见。
我们在layer中open一个新layer,我们想要给它传值,我们使用下面的方式:
如果想要在子layer中调用父类的方法,并且带一些参数,方式如下:
挺简单啊,直接parent调用方法即可。这个parent其实已经是window的对象了。我们把window省略掉了。
我们看看父layer中定义的方法:
回调父类的方法之后,就可以打印我们传的id了。
另外,我们这里传的值,也可以是一个对象。
比如我们把父类的某个元素对象传给子layer,然后子layer回调时传回,在父类中修改此对象的值等。
layer关闭本身:
看你要传入什么值了,可以是moudle分配过来的值 ,也可以是页面中元素的值 ;
用js获取这个值,再写到内容content里面,即可
2
<input type="hidden" id="xxx" value="{$xxx}" /><script>
var my_content = $('#xxx')val();
layeropen(
{
title: '标题',
content: my_content'
});
</script>
你看一下layer的官方演示里边就有在iframe中关闭自身的例子
在你上面的“页面”中,在你提交表单后执行
1
2
3
4
var index = parentlayergetFrameIndex(windowname); //获取当前窗体索引
$('#提交的元素')on('click', function(){
parentlayerclose(index); //执行关闭
});
你可能需要修改上面的"submit"提交为button提交
formverify({
username: function(value){
if(!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$")test(value)){
return '用户名不能有特殊字符';
}
if(/(^\_)|(\__)|(\_+$)/test(value)){
return '用户名首尾不能出现下划线\'_\'';
}
if(/^\d+\d+\d$/test(value)){
return '用户名不能全为数字';
}
}
});
这个应该是支持所有layfilte的验证,写在哪里都可以,只要在你这个d出的时候能执行
以上就是关于layer 如何在ifram d窗传值全部的内容,包括:layer 如何在ifram d窗传值、layer打开新窗口的传值和回调、layer.open 打开一个html页面,content应该怎么传值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)