我在struts 1.2中有一个jsp页面,它有2个功能。打印pdf并提交表格。
打印pdf将打开一个新窗口并显示在页面中使用字段值生成的pdf。
提交表单应导航到同一窗口中的确认页面并将值保存在db中。
以下是代码的一部分。
<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;
}
这些功能可以单独使用。但是,如果我点击打印然后提交,则下一页(确认页面)将在新选项卡中打开。它应该在同一个窗口中。请帮忙!!
答案 0 :(得分:2)
你有一个脚本来提交表单,当你的目标有新或 xxx (标签名称)时,你的表单对象提交有目标属性工作正常,您必须从表单对象中删除目标值。
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
答案 1 :(得分: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),该表单将在每次提交时打开一个新窗口。