我有以下confirm dialog
<p:confirmDialog global="true" showEffect="fade" hideEffect="fade" header="Modal Dialog" modal="true" width="430" height="120" >
<p:commandButton value="Ok" type="button" styleClass="ui-confirmdialog-yes myButton" icon="ui-icon-check" style="float:right;font-family:verdana, Arial; font-size:10pt; color:#ffffff; font-weight:bold;text-align:center;"/>
<p:commandButton value="Cancel" type="button" styleClass="ui-confirmdialog-no myButton" icon="ui-icon-close" style="float:right;font-family:verdana, Arial; font-size:10pt; color:#ffffff; font-weight:bold;text-align:center;"/>
</p:confirmDialog>
并按以下方式调用确认,
<p:commandLink style="text-decoration: none;" global="false" action="#{resetPasswordWindowController.changePassword()}" update="@form" >
<p:panelGrid id="loginButtonGrid" layout="tabular" styleClass="loginButtonGrid" >
<p:row styleClass="loginButtonGridRow">
<p:column styleClass="loginButtonGridText lighterGreenBackground roundLeftCorners" >
Reset
</p:column>
</p:row>
</p:panelGrid>
<p:confirm header="Reset Password" message="Are you sure?" icon="ui-icon-alert" />
</p:commandLink>
它按照我的预期正常工作,但在服务器端验证发生之前调用了确认对话框。
在我的情况下,我正在尝试验证密码并确认密码更改,只是发出警报以确认用户确实想要更改密码。
Expected Results would be :
1. Validate the password and confirm password and if they are valid only show the confirm dialog and proceed to save based on the confirmation we get from confirm dialog.
Thanks
答案 0 :(得分:0)
你有(至少)两个选择:
通过ajax将密码字段发送到服务器,并在该往返中完成验证。如果&#39; OK&#39;启用commandLink,然后在其中包含confirmDialog。
不要使用confirmDialog,而是使用普通对话框。如果没有像此处那样的验证,则会显示点击commandLink的内容:How to display dialog only on complete of a successful form submit
我个人更喜欢选项1