0

我正在尝试更新一个由选择框的 onchange 事件触发的无线电组件。我看到单选按钮在 onchange 之后根据需要切换,但它会在下一秒自动切换回来。

<h:selectOneMenu id="selectId" value="#{someBean.someSelectValue}" 
 onchange="this.form.submit()" valueChangeListener="#{someBean.someChange}" immediate="true">
  <p:ajax update="radioId"/>
  <f:selectItems value="#{someBean.availableSraTitel}" />
</h:selectOneMenu>

<h:selectOneRadio id="radioId" value="#{someBean.someRadioValue}">
  <f:selectItem itemLabel="Yes" itemValue="true" />
  <f:selectItem itemLabel="No" itemValue="false" />
</h:selectOneRadio>

我在这里想念什么?

强尼

4

1 回答 1

3

删除onchange="this.form.submit()"f:ajax将值提交给服务器)

同时删除immediate="true"(我不认为你真的打算在这里跳过任何验证)

最后一件事,<p:ajax update="radioId"/>变成<f:ajax render="radioId"/>

p:ajax来自 primefaces 并且您使用的是普通的 JSF 组件

正如BalusCvalueChangeListener="#{someBean.someChange}"所建议的那样:您也最好通过添加listener="#{someBean.someChange}"来替换f:ajax(您也应该更改方法的签名)

于 2012-07-17T13:11:09.543 回答