把easyDialog v2.0这个插件加入到了项目中,在做选择部门功能时运用这个插件,在easyDialog.open里面的content函数中套了一个iframe标签,把部门页面的地址放入到src中
<iframe id="iframe" src="<%=basePath %>admin/login/deptno" frameborder="no" border="0" height="240"></iframe>,这样当我们点击部门文本框时就换弹出一个包含部门列表的alert页面。
遇到的问题:1、当子页面向父页面传值时不知道怎么传值?
解决方法:在子页面定义两个变量,id和name,然后在ztree的插件的初始化方法中对这两个变量进行赋值
子页面运用了ztree插件,下面这个方法是ztree的初始化放中的一部分。
callback: {
onClick: function(event, treeId, treeNode){
id = treeNode.id;
name = treeNode.name;
}
},
最后在父页面中通过jquert把子页面上的值取过来,父页面js代码如下:
$(function(){
var btnFn = function( e ){
var cwin=document.getElementById("iframe").contentWindow;
var id=cwin.id; //取子页面的值
var name = cwin.name;
//var deptnoname = document.getElementById("demoBtn1").value(name);
$("#demoBtn1").val(name);//把取过来的值赋予父页面上的input属性中
$("#deptnoId").val(id);
//alert(name);
return true;
};
$('#demoBtn1').click( function(){
easyDialog.open({
container : {
header : '选择部门',
content : '<iframe id="iframe" src="<%=basePath %>admin/login/deptno" frameborder="no" border="0" height="240"></iframe>',
yesFn : btnFn,
noFn : true,
},
fixed : false
});
});
});
当我在点击alert的确认按钮就可以把子页面的部门id和name都取到父页面,然后赋值在input框中。