a4j:commandButton に問題があります。私が達成しようとしているのはこれです:
送信ボタンとキャンセルボタンのあるフォームがあります。ユーザーが送信ボタンをクリックすると、両方のボタンが無効になり、ユーザーに確認を求めるポップアップが表示されます。ユーザーが確認した後、検証エラーが発生した場合は、送信ボタンとキャンセル ボタンを再度有効にします。私は多くの解決策を試しましたが、どれもうまくいかないようです。以下の解決策よりも優れた解決策がある場合は、投稿してください。私の質問は以下のコードに関するものです
<h:panelGrid id="submitPanel" columns="2">
<a4j:commandButton id="addRequestButton" render="addRequestButton,cancelButton" onbegin="#{addRequestBean.disableSubmitButton()}" styleClass="LoginButtonStyle" value="Submit"
disabled="#{addRequestBean.submitEnabled}" oncomplete="#{addRequestBean.enableSubmitButton()}">
<rich:componentControl target="popup" operation="show" />
</a4j:commandButton>
<h:commandButton id="cancelButton" styleClass="LoginButtonStyle" value="Cancel" action="main" disabled="#{addRequestBean.submitEnabled}">
</h:commandButton>
</h:panelGrid>
<rich:popupPanel id="popup" modal="true" autosized="true" resizeable="false">
<f:facet name="header">
<h:outputText value="Verify"></h:outputText>
</f:facet>
<h:panelGrid id="popupgrid" columns="1">
<h:outputText styleClass="labelFontStyle" escape="false" value="All changes are final. <br />Do you wish to continue?"></h:outputText>
<h:outputLabel styleClass="labelFontStyle" value="" for="">
</h:outputLabel>
</h:panelGrid>
<h:panelGrid columns="2">
<h:commandButton styleClass="LoginButtonStyle" value="Ok" action="#{addRequestBean.saveRequest}" onclick="#{rich:component('popup')}.hide()">
</h:commandButton>
<h:commandButton styleClass="LoginButtonStyle" value="Cancel" onclick="#{rich:component('popup')}.hide()">
</h:commandButton>
</h:panelGrid>
</rich:popupPanel>
ViewScoped Bean。
onbegin イベントでバッキング Bean 変数を無効に設定し、oncomplete メソッドで再度有効にします。問題は、フォームの読み込み時に onbegin イベントが発生するため、[送信] ボタンと [キャンセル] ボタンの両方が無効になることです。私が間違っていることがあるに違いありません。そうでない場合、これに対する回避策はありますか? これよりも良い解決策がある場合は、投稿してください。
ありがとう