Jsf 2 IE7中的ValueChangeEvent火灾&;IE8仅在第二次单击之后

Jsf 2 IE7中的ValueChangeEvent火灾&;IE8仅在第二次单击之后,jsf-2,internet-explorer-8,internet-explorer-7,myfaces,Jsf 2,Internet Explorer 8,Internet Explorer 7,Myfaces,以下是.xhtml页面中的代码: <h:selectOneRadio valueChangeListener="#{searchModel.setSelectedSearchItem}" value="#{searchModel.selectedSearchItemName}" layout="pageDirection"> <f:selectItems value="#{searchModel.searchParametersNames}" var=

以下是.xhtml页面中的代码:

<h:selectOneRadio valueChangeListener="#{searchModel.setSelectedSearchItem}" value="#{searchModel.selectedSearchItemName}" 
    layout="pageDirection">
        <f:selectItems value="#{searchModel.searchParametersNames}" var="item" itemValue="#{item}" />
        <f:ajax execute="@this" render="searchPane messagesPane" />
</h:selectOneRadio>

它在Chrome、FF和IE9+中运行良好。IE7和IE8的问题在于,ValueChangeEvent不是在单击radioButton(第一次单击)后触发的,而是在我再次单击页面上的某个其他位置(第二次单击)后触发的。在IE7和IE8中第一次单击后,是否有可能触发ValueChangeEvent?

解决了此问题。增加

onclick="this.blur()"
这里



现在事件在IE7和IE8中需要时触发

它在第一次单击之前是否设置了值?否。不要这样认为-如果我选择一个选项(当然是第二次单击),那么它将有一个值,但仍然只有在下一次第二次单击时才会触发事件。尝试在启动时设置一个值并再次检查:是否有效?否。仍然是IE7和IE8火灾事件,仅在再次单击任意位置后发生。
onclick="this.blur()"
<h:selectOneRadio valueChangeListener="#{searchModel.setSelectedSearchItem}" value="#{searchModel.selectedSearchItemName}" 
     layout="pageDirection" onclick="this.blur()">