我有下面的代碼和平:H:commandLink和的onclick JavaScript函數
<DIV>
<h:commandLink action="#{documentGen.generatePDF}"
target="_blank"
onclick="return checkSelected();">
<h:graphicImage url="/images/pdf.jpg"
styleClass="pdfimage" title="Click to show PDF"></h:graphicImage>
</h:commandLink>
</DIV>
這上面被放置在一個表,其中用戶可以勾選複選框,然後點擊上面的commandLink這是旨在開拓一個新窗口並顯示由大豆產生的內容#{documentGen.generatePDF}
。
這個按預期工作,如果我不要包括onclick="return checkSelected();"
。如果我包含它,那麼這個bean就不會被調用,而是我會得到一個新的窗口,它是當前的副本。
我需要這個javascript函數來檢查用戶至少選中了1複選框,否則顯示警報。 Javascript函數正常工作,如果在commandLink被點擊時沒有勾選複選框,我會看到提示。
我的問題是,它爲什麼onclick
行弄亂了commandLink的功能?我究竟做錯了什麼?
UPDATE:
的h:commandLink
是內部h:form
。如上所述,上述命令鏈接按預期工作,沒有onclick=....
。
爲了測試我改變了呼籲的onclick javascript函數來:
function testFunc() {
alert("GOT Here!")
return ture;
}
,並在commandlink上點擊:「來到這裏」 onclick="return testFunc();"
結果是我得到警報但是和以前一樣,新窗口是當前窗口的副本,並且不會調用backbean。刪除onclick行更正結果(但需要在那裏的javascript功能來檢查選中的複選框)。
在瀏覽器源查看commandlink之間的差而不onclik並用的onclick是如下:
<a href="#" onclick="return oamSubmitForm('genView','genView:_idJsp33','_blank',[]);" id="genView:_idJsp33" target="_blank"><img src="/images/pdf.jpg" title="Click for Pdf Document" class="pdfimage"></a>
<a href="#" onclick="return testFunc();;return oamSubmitForm('genView','genView:_idJsp33','_blank',[]);" id="genView:_idJsp33" target="_blank"><img src="/images/pdf.jpg" title="Click for Pdf Document" class="pdfimage"></a>
任何幫助,將不勝感激。由於
非常感謝你,你發現了。 – ke3pup