我试图从另一个对话框调用一个对话框(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>
我遇到的问题是每当我点击提交并且页面上有验证错误时,就会显示错误消息并显示新的对话框。只有在成功完成表单时才会显示新对话框,而不会出现任何验证错误。
我哪里错了?
答案 0 :(得分:1)
验证结果位于由oncomplete
变量提供的PrimeFaces组件的args.validationFailed
属性中,该变量返回boolean
。只需使用它。
oncomplete="if (!args.validationFailed) { statusDialog.hide(); dlg.hide(); welcome.show(); }"/>