【发布时间】:2011-05-22 10:50:20
【问题描述】:
我的表单中有 5 个单选按钮,选择一个并继续操作会将我带到用户需要填写的表单。现在,在这 5 个表单中,我还没有完成这些单选按钮带我的表单中的 2 个。所以我想禁用没有准备好表单的单选按钮。
我现在如何解决:如果用户选择其中一个没有准备好表单的单选按钮,它会显示“正在构建页面”,但我想完全禁用它们,以便没有人选择它。
【问题讨论】:
标签: jsf disabled-input selectoneradio
我的表单中有 5 个单选按钮,选择一个并继续操作会将我带到用户需要填写的表单。现在,在这 5 个表单中,我还没有完成这些单选按钮带我的表单中的 2 个。所以我想禁用没有准备好表单的单选按钮。
我现在如何解决:如果用户选择其中一个没有准备好表单的单选按钮,它会显示“正在构建页面”,但我想完全禁用它们,以便没有人选择它。
【问题讨论】:
标签: jsf disabled-input selectoneradio
如果您使用的是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" />
【讨论】:
SelectItem 构造函数,它带有一个额外的disabled 参数,您可以使用true 或false 设置该参数。您不需要完全此代码。这只是一个基本的例子来说明这个想法。只要您使用正确的构造函数,您始终可以动态填充它。