我正在尝试从另一个对话框调用对话框(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>
我面临的问题是,每当我按下提交并且页面上都有验证错误时,显示错误消息并显示新的对话框。新的对话框应该仅在未经任何验证错误的情况下成功完成表单上显示。
我要去哪里?
验证结果在返回 boolean
的JavaScript args.validationFailed
变量可提供的PrimeFaces组件的oncomplete
属性中。只需使用它即可。
oncomplete="if (!args.validationFailed) { statusDialog.hide(); dlg.hide(); welcome.show(); }"/>