如何使用ajax在showModalDialog框中提交表单后在父窗口中显示结果

时间:2014-12-01 11:03:18

标签: javascript jquery ajax forms struts2

我正面临一个复杂的情况,即父窗口正在调用showModelDialog框来提交表单。 提交表单时,它将转到struts2操作。 Action执行一些操作,然后再次重定向到父页面。 这样就可以再次刷新完整的父页面。用户点击子窗口中的提交后我想要的。子窗口应该关闭,结果只需要在父窗口的特定部分更新。

函数调用子窗口:

function createRegularFile()
    {
     var userAgent =  navigator.userAgent;
    var appName = navigator.appName;
    window.name="WorklistFiles";
    alert("before="+UserFiles.innerHTML);
    if(appName=="Microsoft Internet Explorer")
    {       window.showModalDialog("createFilePrepareFilesAction.action",window,"help:no;dialogheight:400px;dialogwidth:500px;status:0;");
        }
    else{var abc=window.open("createFilePrepareFilesAction.action","window","HEIGHT=400,WIDTH=500,screenX=80,left=300,screenY=50,top=200,scrollbars=1,resizable=yes");
}
子窗口中的

功能:

function create()
{   
    //other code 
    document.createRegularFile.action="createFileFilesAction.action";
    document.createRegularFile.submit();
    window.close();
}

行动代码:

createFile()
{
//some code.
return "parent"
}

struts.xml中:

<result name="parent" type="redirect-action">
                <param name="actionName">worklistWorklistAction</param>
                <param name="error">${error.get(0)}</param>
</result>

Parent.jsp

Contains code which displays a table using <s:iterator>

成功提交后,只需更新此表。我知道如何使用AJAX但在这种情况下无法找到实现它的方法。

1 个答案:

答案 0 :(得分:0)

关闭孩子的大纲

<input type="button" onclick="ajax_call();" />

function to_close_child()
{
// code to close child window

}

function ajax_call()
{
//ajaxfunction
  success
   {
     // no need to call on success func
   }


// call the close function here only
to_close_child();
}