簡體   English   中英

rich:comboBox的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" />`

現在問題已解決。

問題

[英]problem with <rich:combobox

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM