禁用特定的<h:selectoneradio>项目</h:selectoneradio>

时间:2010-12-08 19:43:25

标签: jsf disabled-input selectoneradio

我的表单中有5个单选按钮,选择一个并继续将我带到用户需要填写的表单。现在,在这5个中,我还没有完成这些单选按钮带给我的2个表单。所以我想禁用没有准备好表格的单选按钮。

我现在如何解决:如果用户选择其中一个没有准备好表格的单选按钮,则会显示“正在构建的页面”,但我想完全禁用它们,以便没有人选择它。

1 个答案:

答案 0 :(得分:3)

如果您使用的是f:selectItems,请使用SelectItem constructor taking the disabled argument

public class Bean {
    private List<SelectItem> selectItems;

    public Bean() {
        selectItems = new ArrayList<SelectItem>();
        selectItems.add(new SelectItem(1, "Form 1", null, false));
        selectItems.add(new SelectItem(2, "Form 2", null, false));
        selectItems.add(new SelectItem(3, "Form 3", null, false));
        selectItems.add(new SelectItem(4, "Form 4", null, true));
        selectItems.add(new SelectItem(5, "Form 5", null, true));
    }

    // getter for selectItems field ...
}

或者,如果您使用的是f:selectItem,请使用itemDisabled属性。

<f:selectItem itemValue="1" itemLabel="Form 1" itemDisabled="false" />
<f:selectItem itemValue="2" itemLabel="Form 2" itemDisabled="false" />
<f:selectItem itemValue="3" itemLabel="Form 3" itemDisabled="false" />
<f:selectItem itemValue="4" itemLabel="Form 4" itemDisabled="true" />
<f:selectItem itemValue="5" itemLabel="Form 5" itemDisabled="true" />