2

我正在尝试从另一个对话框调用一个对话框(p:dialog)。在我的页面中,单击链接会打开一个对话框,该对话框有两个部分,一个用于登录,另一个用于注册。目前我的页面结构如下所示。

<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.validationFailed变量返回一个boolean. 只是利用它。

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