【问题标题】:Disable specific <h:selectOneRadio> items禁用特定 <h:selectOneRadio> 项目
【发布时间】:2011-05-22 10:50:20
【问题描述】:

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

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

【问题讨论】:

    标签: jsf disabled-input selectoneradio


    【解决方案1】:

    如果您使用的是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 参数,您可以使用truefalse 设置该参数。您不需要完全此代码。这只是一个基本的例子来说明这个想法。只要您使用正确的构造函数,您始终可以动态填充它。
    猜你喜欢
    • 2013-01-15
    • 2015-04-12
    • 2023-03-12
    • 1970-01-01
    • 2012-07-11
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多