父页面查询方法
function queryData(){
var frm=$name("form1");
frm.elements["_eosFlowAction"].value="query";
var frm1 = $name("form2");
if(frm1==null){ frm.elements["page/length"].value =10;
}else{
frm.elements["page/length"].value = frm1.elements["page/length"].value;
}
if(frm1!=null){
var length = frm1.elements["page/length"];
if(!checkPageLength(length)){//检测“每页显示”的值,是否为小于100的正整数
return false;
}
}
frm.submit();//提交form
} 子页面保存方法
function saveData(frm){ var g = $id("group1");
if (g.getSelectLength() < 1) {
alert("<b:message key="MSG_SELECTITEM"/>");
return;
} if( !confirm("<b:message key="BESURETOWHATCHTHISGROUPS"/>") ) {
return;
} else{
var action_url = "com.sundata.qrms.rc.groupwatch.GroupWarch.addGroups.biz";
var ajax = new Ajax(action_url);
ajax.submitForm(frm);
var returnNode =ajax.getResponseXMLDom();
if (returnNode){
if(ajax.getValue("root/data/ret")=="1"){
alert('<b:message key="l_m_save_success"/>');
opener.location.reload();
}
if(ajax.getValue("root/data/ret")=="0"){
alert('<b:message key="l_m_save_fail"/>');
}
}else{
alert('<b:message key="DBEXCEPTION"/>');
}
}
window.close();
}
function queryData(){
var frm=$name("form1");
frm.elements["_eosFlowAction"].value="query";
var frm1 = $name("form2");
if(frm1==null){ frm.elements["page/length"].value =10;
}else{
frm.elements["page/length"].value = frm1.elements["page/length"].value;
}
if(frm1!=null){
var length = frm1.elements["page/length"];
if(!checkPageLength(length)){//检测“每页显示”的值,是否为小于100的正整数
return false;
}
}
frm.submit();//提交form
} 子页面保存方法
function saveData(frm){ var g = $id("group1");
if (g.getSelectLength() < 1) {
alert("<b:message key="MSG_SELECTITEM"/>");
return;
} if( !confirm("<b:message key="BESURETOWHATCHTHISGROUPS"/>") ) {
return;
} else{
var action_url = "com.sundata.qrms.rc.groupwatch.GroupWarch.addGroups.biz";
var ajax = new Ajax(action_url);
ajax.submitForm(frm);
var returnNode =ajax.getResponseXMLDom();
if (returnNode){
if(ajax.getValue("root/data/ret")=="1"){
alert('<b:message key="l_m_save_success"/>');
opener.location.reload();
}
if(ajax.getValue("root/data/ret")=="0"){
alert('<b:message key="l_m_save_fail"/>');
}
}else{
alert('<b:message key="DBEXCEPTION"/>');
}
}
window.close();
}
建议合适的做法是,在子页面操作父页面的那个 提交按钮,比如:
var btnSubmit = document.getElementById("xxxooo"); // 查找该按钮
btnSubmit.submit(); // 触发提交动作
function reSubmit() {
var btnSubmit = document.getElementById("xxxooo"); // 查找该按钮
btnSubmit.submit(); // 触发提交动作
}提交按钮必须有id,名称跟函数中的必须保持一致:
<input id="xxxooo" type="submit" value="提交">然后子窗口调用:
opener.reSubmit();
main.html 主页面,带表单提交。
pop.html 弹出页面,点击按钮时提交主页面并关闭自己。为了演示效果,在程序中对输入框自动填入了随机数,这样你通过看浏览器的地址栏URL变化,就可以知道确实提交了。【main.html】<html>
<head>
<script>
function reSubmit() {
var form = document.getElementById("xxxooo"); // 查找需要提交的表单
form.submit(); // 触发提交动作
}
</script>
</head>
<body onload="document.getElementById('name').value=Math.random()">
<form id="xxxooo">
姓名:<input id="name" type="text" name="name" value="123" />
<br />
<input type="submit" />
<br />
<input type="button" value="popup" onclick="window.open('pop.html');" />
</body>
</html>
【pop.html】<html>
<head>
<script>
function saveData() {
opener.reSubmit();
window.close();
}
</script>
</head>
<body>
<form>
关闭窗口并刷新主窗口。
<input type="button" value="save&quit" onclick="saveData()" />
</body>
</html>
最后需要提醒下,我看你页面的提交似乎用的是 function queryData() 这个函数,那么可能最终你自己的弹出窗口只需要:
opener.queryData();
window.close();
window.close();
这个我早就试过了 不行,刷新父页面的时候,父页面会弹出重复刷新对话框!这个问题是eos框架上写的程序,这个是项目优化,先不处理了!谢了