2012-03-21 3 views
1

結局のところ、私は自分の英語を残念に思っています。 私はmodalPanelを表示する際に問題があります。 フォームの検証が正しい場合は、私はmodalPanelを表示したいと思いますが、検証が失敗した場合は表示されません。modalpanelの条件付き検証を表示するJSF

<h:form> 
    <rich:calendar id="date" datePattern="dd-MM-yyyy" 
    value="#{Bean.startDate}" required="true"/> 

    <a4j:commandButton value="Accept" action="#{Bean.Action}" 
    onclick="if(#{empty facesContext.maximumSeverity}) #{rich:component('popUp')}.show();" /> 

</form> 

初めてページが読み込まれたときに最大値が空であるため、maximumSeverityはここでは機能しません。

JSFのライフサイクルの検証を呼び出して、フォームが正しいかどうかを知ることは可能でしょうか?

ありがとうございます!

答えて

3

onclickより前に実行されます。アクションが呼び出されます。代わりにoncompleteが必要です。

JSF 2.0を使用している場合は、通常のINFOメッセージでも重大度が数えられるため、代わりにFacesContext#isValidationFailed()を使用する方が良い方法です。

<a4j:commandButton value="Accept" action="#{Bean.Action}" 
    oncomplete="if(#{not facesContext.validationFailed}) #{rich:component('popUp')}.show();" />