2011-09-14 253 views
0

請幫助我!我是新手。 我有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()...... 
     ............................. 
     .............................. 
} 

回答

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。他們有類似的組件,以相同的方式工作。

+0

它沒有幫助我。我使用JSF 2.0。最重要的是,在聽衆中寫什麼? – Michael

+0

我認爲聽衆離開你的原始代碼。如果您不希望它被調用,您可以將其刪除。 – Ross

+0

我更新了答案並刪除了聽衆 – Ross