在重新渲染依赖单选按钮时更改事件丢失

时间:2016-10-12 16:08:20

标签: ajax jsf jsf-2 jsf-2.2

给定:一个输入和一个可点击的输入(例如单选按钮)。更改重新渲染b。

<h:form id="rootForm">
    <h:inputText id="a" value="#{fooBB.a}">
        <f:ajax render="a b"/>
    </h:inputText>
    <h:selectOneRadio id="b" value="#{fooBB.b}">
        <f:selectItem itemValue="x" itemLabel="x"/>
        <f:selectItem itemValue="y" itemLabel="y"/>
        <f:ajax/>
    </h:selectOneRadio>
</h:form>

我将光标放入字段A,更改值而不提交,然后单击其中一个不是当前值的单选按钮(即:在selectOneRadio上生成其他更改事件)

然后发生下列情况之一(可能取决于我释放鼠标按钮的速度):

  • a已提交,更改为b已丢失(无b的ajax请求)
  • a提交,更改为b丢失(b的ajax请求具有相同的javax.faces.ViewState作为ajax请求)

在这两种情况下,鼠标点击都会丢失,这非常烦人。

由于这只是一个表单和JSF 2.2,我不认为这是一些javax.faces.ViewState-not-getting-updated问题(尝试了大多数解决方法)。

使用myfaces-2.2.11(在Wildfly 8.1上)

是否有解决方法,我做错了什么或者我必须忍受它吗?

编辑更新了包含Kukeltjes改进的示例

0 个答案:

没有答案