选中其他复选框时如何禁用复选框?

时间:2011-09-14 09:17:26

标签: events jsf listener checked

请帮帮我!我是新手。 我有3个组件。如果第一个selectBooleanCheckbox已选中,则应禁用第二个和第三个组件。如果第一个selectBooleanCheckbox未选中,那么第二个和第三个组件应该是活动的。

<h:selectBooleanCheckbox id="checkBox_1" value="#{MyManagerBean.goldRun}"
              valueChangeListener="#{MyManagerBean.valueChangeInput}"/>
<h:selectBooleanCheckbox id="checkBox_2" value="#{MymanagerBean.useResult}" />
<h:selectBooleanCheckbox id="checkBox_3" value="#{MymanagerBean.goldSize}" />

我该怎么做?

 public void valueChangeInput(ValueChangeEvent event) {
       event.getNewValue()......
       .............................
       ..............................
 }

1 个答案:

答案 0 :(得分:3)

我认为您正在寻找的行为只能使用ajax来完成。如果您使用的是JSF2,则会在其中内置ajax。你可以这样做:

<h:selectBooleanCheckbox id="checkBox_1" value="#{MyManagerBean.goldRun}">
  <f:ajax event="change" render="checkBox_2 checkBox_3"/>
</h:selectBooleanCheckbox>
<h:selectBooleanCheckbox id="checkBox_2" value="#{MymanagerBean.useResult}" disabled="#{MyManagerBean.goldRun}" />
<h:selectBooleanCheckbox id="checkBox_3" value="#{MymanagerBean.goldSize}" disabled="#{MyManagerBean.goldRun}"/>

上面的代码必须是一种形式。

如果你使用JSF 1.2,那么你将需要使用ajax支持的JSF第三方库,如RichFaces / ICEfaces。它们具有相同的组件,以相同的方式工作。