我遇到问题:在IE8中,f:ajax中的事件不起作用,更改后不更新其他组件。
<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中 - 它有效。 谢谢你的帮助。
答案 0 :(得分: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"
默认为UIInput
,默认为"action"
组件中的UICommand
。在生成单选按钮或复选框的UIInput
组件中,它将生成onclick
。在其他UIInput
组件(文本字段,文本区域,下拉列表等)中,它将生成onchange
。
无关,其他<h:form>
可以不处理,与您在execute
属性中的想法相反,仅仅因为它的值不随当前表格的提交一起提交。但这是另一个故事。