2

別のダイアログボックスからダイアログボックス(p:dialog)を呼び出そうとしています。私のページでは、リンクをクリックすると1つのダイアログボックスが開きます。このダイアログボックスには、ログイン用とサインアップ用の2つのセクションがあります。現在、私のページの構造は次のようになっています。

<h:form>
    <h:outputLink value="javascript:void(0)" onclick="dlg.show()" title="Login" />
</h:form>

<p:dialog id="dialog" header="Login" widgetVar="dlg" appendToBody="true" modal="true" width="750">
    <h:form id="loginForm">
        ...
    </h:form>

    <h:form id="signupForm">
        ...
        <p:commandButton id="submitButton" value="SignUp" 
            onstart="statusDialog.show();" 
            action="# {signupBean.doSignup}" 
            update="growl" 
            oncomplete="statusDialog.hide();dlg.hide();welcome.show();"/>
    </h:form>
</p:dialog>

<p:dialog header="Welcome" id="welcome" resizable="false" widgetVar="welcome" width="700" closable="false" modal ="true">

</p:dialog>

私が直面している問題は、送信を押してページに検証エラーがあると、エラーメッセージが表示され、新しいダイアログボックスが表示されることです。新しいダイアログボックスは、検証エラーなしでフォームが正常に入力された場合にのみ表示されることになっています。

どこが間違っているのですか?

4

1 に答える 1

1

検証結果は、を返すoncompleteJavaScript 変数によって利用可能な PrimeFaces コンポーネントの属性にあります。それを利用するだけです。args.validationFailedboolean

oncomplete="if (!args.validationFailed) { statusDialog.hide(); dlg.hide(); welcome.show(); }"/>
于 2012-11-06T11:35:43.057 に答える