1

私は次のようなコードを持っています:

 <p:commandButton value="#{actualProductionEntry.val}" onclick="confirmation.show()"/>
 <p:confirmDialog id="confirmDialog" message="Are you sure?" header="Confirm Submission"                                 severity="alert" widgetVar="confirmation">         
     <p:commandButton id="confirm" value="Yes" oncomplete="confirmation.hide()" action="#   {actualProductionEntry.insert(login.userid,login.uid,login.dname,login.rptid)}"   update=":df:data :f1:p2 :dp:app"/>  
     <p:commandButton id="decline" value="No" onclick="confirmation.hide()" type="button" />                 
 </p:confirmDialog> 

さて、Beanに影響を与えずに確認前に検証を行うにはどうすればよいですか?

4

1 に答える 1

6

PrimeFacesはargs.validationFailedajax応答でを返します。oncomplete属性でそれを確認できます。onclickに置き換えます

<p:commandButton ... oncomplete="if (!args.validationFailed) confirmation.show()" />

または、コンポーネントを<p:commandButton>更新して、ポストバックがあり、検証が失敗していない場合は、その属性をチェックインすることもできます。<p:confirmDialog>visibleFacesContext

<p:commandButton ... update="confirmDialog" />
<p:confirmDialog ... visible="#{facesContext.postback and not facesContext.validationFailed}" />
于 2012-10-26T10:42:13.883 に答える