今天学习了部分lhgdialog的值传入及传出。走了些弯路。特此记下,避免下次再掉到坑中。
首先创建了两个测试窗体。一个是主窗体(调用窗体),一个做被调用窗体。把被调用窗体装入dialog之中。
这是主窗体中的代码
<script src="Script/jquery-2.1.4.js"></script>
<script src="Script/lhgdialog/lhgdialog.js"></script>
<script>
$(document).ready(function () {
$("#btn").get(0).onclick = btnclick;
});
//οnclick="btnclick()"
function btnclick(){
//alert("测试按钮");
$.dialog({
content: "url:sendValue.aspx",
lock: true
});
};
</script>
这个是在被调用窗体中的代码
<script>
var api = frameElement.api, W = api.opener;
api.button({
id: "lk",
name: "lk",
callback:btn
});
$(document).ready(function () {
$("#Text1").get(0).value = W.$("#Text1").get(0).value;
});
function btn() {
W.$("#Text1").get(0).value = $("#Text1").get(0).value;
};
</script>
之所以调用出错,是因为总是在主窗体中写入 var api = frameElement.api, W = api.opener;这段代码。程序报错说找不到对象。查看文档,说是针对 iframe框架进行的。然后去研究怎么去建立框架,费了不少时间。原来,在被调用窗体中写入 var api = frameElement.api, W = api.opener;这段代码就可以了。被调用窗体即是一个框架(初学,有可以理解不正确)。且这段代码要放置在函数之外。否则报错。
api.button({
id: "lk",
name: "lk",
callback:btn
});
这个是在窗体上写好值以后,传入主窗体中的。注意它也是在函数之外,不能放在函数中。否则报错。
$(document).ready(function () {
$("#Text1").get(0).value = W.$("#Text1").get(0).value;
});这段是将主窗体的值传入到被调用窗体中的。w即是主窗体的文档对象。
function btn() {
W.$("#Text1").get(0).value = $("#Text1").get(0).value;
};
最后一段是将弹出窗体中的值返回到主窗体中的。