2012-04-28 70 views
1

我遇到了問題:在IE8中不工作的事件在f:ajax中,更改後不更新其他組件。JSF f:ajax和IE 8

<h:selectBooleanCheckbox id="someId" 
         value="#{someBean.showEmpty}" 
         title="#{i18n['button.showEmpty']}"> 
         <f:ajax event="change" 
          listener="#{someBean.changeShowEmpty}" 
          execute=":someForm @form" render=":messages :someForm @form" /> 
        </h:selectBooleanCheckbox> 

在Chrome,Opera,Firefox中運行。 感謝您的幫助。

回答

2

這確實是MSIE的「預期」行爲。它只會在第二次來回工作,因爲MSIE認爲第一次點擊實質上不是變化。您應該傾聽click事件。這也正是<f:ajax>默認確實爲<h:selectBooleanCheckbox>。完全刪除event屬性。

<f:ajax listener="#{someBean.changeShowEmpty}" 
    execute=":someForm @form" render=":messages :someForm @form" /> 

<f:ajax event>默認爲"valueChange"UICommand部件UIInput組件和缺省爲"action"。在生成單選按鈕或複選框的組件中,它將生成onclick。在其他UIInput組件(文本字段,textarea,下拉菜單等)中,它將生成onchange


無關的具體問題,另一<h:form>可以在相反的處理,以你似乎在想什麼在execute屬性,僅僅是因爲它的值不會隨着提交當前的提交形成。但這是另一回事。