私は次のコードの平和を持っている: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();"
が含まれています。私はそれを含めると、バックベイは決して呼び出されません、代わりに、私は現在の複製である新しいウィンドウを取得します。
私はこのチェックボックスをオンにすると、チェックボックスをオンにしてください。 Javascript関数は正常に動作し、commandLinkがクリックされているときにチェックボックスが選択されていなければ警告が表示されます。
私の質問は、なぜonclick
コマンドラインが何をしているのですか?何が間違っているのですか?
UPDATE:
h:commandLink
がh:form
の内側にあります。前述のように、コマンドリンクはonclick=....
なしで期待通りに機能します。結果は、私は警告が取得され
onclick="return testFunc();"
function testFunc() {
alert("GOT Here!")
return ture;
}
とクリックでのcommandLinkで:私をテストする
はにonclickの上と呼ばれるjavascript関数を変更し、「ここに来ました!」前と同じように、新しいウィンドウは現在のウィンドウの複製であり、バック・ベイは呼び出されません。 onclick行を削除すると、結果が修正されます(ただし、チェックボックスをオンにするにはjavascript関数が必要です)。ブラウザソースに
はonclikとのonclickとなしのcommandLinkとの間の差を表示する以下の通りである:
<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>
任意の助けが理解されるであろう。あなたがのcommandLinkのonclickイベントでfalseを返す場合のおかげ
THANKあんまり、あなたがいた。 – ke3pup