从另一个对话框jsf调用对话框时多个表单提交

时间:2012-11-06 11:12:04

标签: jsf multiple-forms

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

<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>

我遇到的问题是每当我点击提交并且页面上有验证错误时,就会显示错误消息并显示新的对话框。只有在成功完成表单时才会显示新对话框,而不会出现任何验证错误。

我哪里错了?

1 个答案:

答案 0 :(得分:1)

验证结果位于由oncomplete变量提供的PrimeFaces组件的args.validationFailed属性中,该变量返回boolean。只需使用它。

oncomplete="if (!args.validationFailed) { statusDialog.hide(); dlg.hide(); welcome.show(); }"/>