Javascript 将表单目标更改为带有primefaces和oncomplete的空白
这个主题已经出现在其他帖子中,但是没有一个解决方案对我有效,所以我在这里,希望有人能给我指出正确的方向 基本上,我有一个带有Primefaces 3.5的应用程序,它有两个commandButtons,可以执行backingbean方法以生成两个不同的报告作为输出流(没有可用的GET)。其中一个报告作为附件生成,而另一个报告应显示在另一个选项卡中。两者的形式相同 我的问题来自于在一个单独的选项卡中生成的报告:由于报告共享同一个表单,我不能在表单定义中使用target=blank,并且由于我必须在我的支持bean中进行验证,我必须在主选项卡中显示可能的错误消息,只有在一切顺利的情况下才打开新的选项卡 我在表单页面中尝试了以下js:Javascript 将表单目标更改为带有primefaces和oncomplete的空白,javascript,forms,jsf,primefaces,Javascript,Forms,Jsf,Primefaces,这个主题已经出现在其他帖子中,但是没有一个解决方案对我有效,所以我在这里,希望有人能给我指出正确的方向 基本上,我有一个带有Primefaces 3.5的应用程序,它有两个commandButtons,可以执行backingbean方法以生成两个不同的报告作为输出流(没有可用的GET)。其中一个报告作为附件生成,而另一个报告应显示在另一个选项卡中。两者的形式相同 我的问题来自于在一个单独的选项卡中生成的报告:由于报告共享同一个表单,我不能在表单定义中使用target=blank,并且由于我必须在
function test() {
document.getElementById("formRep3_1").target = '_blank';
}
被豆子叫着
RequestContext.getCurrentInstance().execute("test()");
验证成功后。但它不起作用
我还尝试在report按钮上设置oncomplete=“test()”,稍微修改js,如下所示:
function test() {
var v = '<h:outputText value="#{repReqStatus.resultCheck}" />';
if (v.value == "success") {
document.getElementById("formRep3_1").target = '_blank';
}
else {
alert('no');
}
}
所以是的,我迷路了。非常感谢您的帮助
谢谢 在调用链接的操作期间,不能更改链接的目标。太晚了
最好的办法是不使用
target=“\u blank”
,而是在所需URL上调用JavaScript窗口。open()
。您可以将PDF报告存储在会话中,或者为URL准备请求参数,以便它可以根据这些请求参数生成所需的PDF报告。您可以修复代码格式吗?这是AJAX请求吗?如果这是AJAX请求,则不能使用\u blank
打开新窗口/选项卡。您必须在onsuccess
中手动打开新窗口。我还尝试了在我的命令按钮中使用onsuccess,这样我就可以打开一个新选项卡……但是如果验证失败,新选项卡仍然会打开,错误消息会显示在第一页。在这种情况下,我是否必须在代码中设置一些东西来避免触发onSuccess?谢谢
oncomplete="if (!args.validationFailed){test()}"