我在使用 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 事件,因此禁用了提交和取消按钮。一定是我做错了什么,如果没有,是否有解决方法?如果有比这更好的解决方案,请再次发布。
谢谢