1

我在 struts 1.2 中有一个 jsp 页面,它有 2 个功能。打印pdf并提交表格。
打印 pdf 将打开一个新窗口并显示使用页面中的字段值生成的 pdf。
提交表单应导航到同一窗口中的确认页面并将值保存在数据库中。
这是它的代码部分。

<a href="javascript:void(0)" onclick="javascript:printPDF();" target="_blank"><img src="/images/buttons/ButtonPrint.gif" border="0" alt="Print" ></a>

<a href="javascript:void(0)" onclick="javascript:submitContinue();"><img src="/images/buttons/ButtonSubmit.gif" border="0" alt="Submit" ></a>


以下是相应的javascript方法。

function submitContinue()
{
    document.forms[0].action = "/provider/requestSubmitted.do?method=processUpload";
    document.forms[0].submit();
    return true;
}

function printPDF()
{
    document.forms[0].action = "/provider/requestSubmitted.do?method=printPDF";
    document.forms[0].target="new";
    document.forms[0].submit();
    return true;

}

这些功能单独工作正常。但是如果我点击打印然后提交,下一页(确认页面)会在一个新选项卡中打开。它应该在同一个窗口中。请帮忙 !!

4

2 回答 2

2

吉条,

您有一个提交表单的脚本,在您要提交的表单对象中具有目标属性,当目标具有值newxxx(选项卡名称)时,这工作正常,您必须从表单对象中删除目标值。

 function submitContinue()  
 {
    document.forms[0].action = "/provider/requestSubmitted.do?method=processUpload";
    document.forms[0].target="_self";
    document.forms[0].submit();
    return true;
}  
 function printPDF()
 {
     document.forms[0].action = "/provider/requestSubmitted.do?method=printPDF";
     document.forms[0].target="pdf";
     document.forms[0].submit();
     return true; 
 }

如果你有

 <form action="xxx" **target="yyy"**

您必须再次删除 target="yyy"

关于目标属性的文档是

target values      Description
  _blank            Specifies where to display the response that is 
  _self
  _parent
  _top
于 2013-11-01T11:39:13.567 回答
1
function submitContinue()
{
    document.forms[0].action = "/provider/requestSubmitted.do?method=processUpload";
    document.forms[0].target=self; <-------HERE
    document.forms[0].submit();
    return true;
}

当您使用 printPDF 时,表单目标设置为“new”,如果您不刷新页面或将其重置为“self”(或 null),该表单将在每次提交时打开一个新窗口。

于 2013-11-01T11:39:37.377 回答