這託皮斯已經出現在其他職位,但沒有一個解決方案提到爲我工作所以我在這裏,希望有人能指出我在正確的方向。變化形式目標_blank與primefaces和的onComplete
基本上,我有Primefaces 3.5應用程序中使用2個CommandButton控件,其執行支持bean方法來生成兩個不同的報告,作爲一個輸出流(無可用的GET)。此報告中的一個是作爲附件生成的,而另一個報告應顯示在另一個選項卡中。兩者都以相同的形式。
我的問題來自在單獨的選項卡中生成的報表:由於報表共享相同的表單,因此我無法在表單定義中使用target = blank,並且由於必須在支持bean中執行驗證,所以我必須顯示可能的錯誤信息在主選項卡中,只有在一切順利時纔打開新的信息。
我試着在表單頁面下面的JS:
function test() {
document.getElementById("formRep3_1").target = '_blank';
}
由bean調用
RequestContext.getCurrentInstance().execute("test()");
驗證成功後。但它不起作用。
我也試過在報告鍵在設置的onComplete =「測試()」,稍微修改JS是這樣的:
function test() {
var v = '<h:outputText value="#{repReqStatus.resultCheck}" />';
if (v.value == "success") {
document.getElementById("formRep3_1").target = '_blank';
}
else {
alert('no');
}
}
但似乎的onComplete沒有得到根本叫!即使我做了另一個檢查,如
oncomplete="if (!args.validationFailed){test()}"
所以是的,我迷路了。任何幫助真的很感激。
謝謝!
你能否修復你的代碼格式? – ChiefTwoPencils 2013-03-06 23:43:44
這是AJAX請求嗎?如果這是AJAX請求,則無法使用_blank打開新窗口/選項卡。您必須在'onsuccess'手動打開新窗口。 – partlov 2013-03-07 07:49:16
我也嘗試在我的commandButton中使用onsuccess,並且我可以打開一個新的選項卡......但是如果驗證失敗,無論如何都會打開新選項卡,並在第一頁中顯示錯誤消息。在這種情況下,是否有必須在我的代碼中設置不觸發onSuccess?謝謝! – user2142007 2013-03-07 22:32:53