![](/img/trans.png)
[英]RichFaces rich:autocomplete not firing valueChangeListener
[英]valueChangeListener of rich:comboBox getting called on submit which is unintended
我面臨的一個問題是,在更改rich:comboBox值時,我需要調用backing bean。 所以我在下面使用a4j:support event =“ onchange”的valueChangeListener:
<rich:comboBox value="#{myBean.name}" defaultLabel="#{messages['dropdown.defaultText']}" label="#{messages['label.name']}" status="defaultStatus" valueChangeListener="#{myBean.checkToChangeName}" disabled="#{myBean.isAdminUser}" >
<f:selectItems value="#{myBean.nameList}" />
<a4j:support event="onchange" reRender="errTable,popUpPanel" oncomplete="if(#{myBean.showPopup}) #{rich:component('popUpPanel')}.show();" />
</rich:comboBox>
支持bean方法:
public boolean checkToChangeName(ValueChangeEvent event){
// Code to check change is valid & its impact on other fields
}
方法checkToChangeName()應該僅在更改事件時被調用。 但就我而言,方法在變更事件上被調用,並且在我不需要的表單的提交上也被調用,並造成麻煩。
我正在使用h:commandButton來提交表單:
<h:commandButton id="btnSave" value="#{messages['action.save']}" action="#{myBean.updateProfile}" reRender="profileForm" />
誰能幫助我了解為什么在提交時調用checkToChangeName()方法? &如何預防?
我知道了 整個表單在保存時會重新呈現,這導致調用valueChangeEventListener。 為了避免這種情況,我只更改了以下內容,以重新渲染保存命令按鈕的外觀:
舊:
<h:commandButton id="btnSave" value="#{messages['action.save']}" action="#{myBean.updateProfile}" reRender="profileForm" />
新:
`<h:commandButton id="btnSave" value="#{messages['action.save']}" action="#{myBean.updateProfile}" reRender="errorMessageTable" />`
現在問題已解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.