首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >临时禁用了SelectItems的<h:selectOneMenu>

临时禁用了SelectItems的<h:selectOneMenu>
EN

Stack Overflow用户
提问于 2011-02-16 02:48:43
回答 4查看 8.2K关注 0票数 2

我有一个从我的对象模型呈现cardStatus值的<h:selectOneMenu>。CardStatus具有布尔属性'temporaryDisabled‘,这意味着该值仍然有效,但不应由用户使用。

现在,如果我的模型将cardStatus设置为临时禁用的值,我如何在下拉框中显示该值,同时仍然防止用户将该值更改为另一个临时禁用状态?

如果我只是从我提供给<h:selectOneMenu>的SelectItems列表中删除禁用的卡状态,那么当select被呈现时,它将自动选择列表中的第一个项目,并在下次提交它,从而错误地更改我在模型中的值。

如果我将禁用的卡状态包含在SelectItems列表中,但将相应项目的disabled属性的值设置为true,则它们在HTML disabled中呈现,而不提交,因此我在我的模型中得到空值,这也是错误的。

我被卡住了。我们非常感谢您的任何建议。

最好的问候,丹。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-02-21 19:07:15

最后,我使用了一段在页面加载后执行的jQuery代码。

代码语言:javascript
运行
复制
<h:selectOneMenu 
    id="cardStatus" 
    value="#{someBean.cardStatus}"
    converter="selectItemConverter">
    <f:selectItem itemValue="E|A" itemLabel="Active" />
    <f:selectItem itemValue="E|S" itemLabel="Stolen" />
    <f:selectItem itemValue="D|B" itemLabel="Blocked" />
    <f:selectItem itemValue="E|L" itemLabel="Lost" />
    <f:selectItem itemValue="D|C" itemLabel="Counterfeit" />
</h:selectOneMenu>

javascript代码的作用是扫描所有项,并使用jQuery的()函数为每个值以前缀D|开头的项隐藏该项。这样,组合框的作用是所有的值都将是有效/启用的,但用户将无法选择非活动值,因为它们不可见。此外,如果默认选择的值是以D|开头的值之一,则该值仍将显示为默认值,但用户无法在他/她可以选择的选项列表中看到它。

票数 1
EN

Stack Overflow用户

发布于 2011-02-17 23:01:11

“这意味着该值仍然有效,但不应由用户使用”

帮我理解这首曲子。您想在h:selectOneMenu中显示这些选项,但不允许用户选择它们吗?我想我不明白,如果他们是无效的选项,你为什么要向用户展示他们呢?

你可以创建一个验证器来验证"temporaryDisabled“,如果这就是你想要实现的……让我更多地了解您希望最终用户看到的内容,我可能会提供帮助。

票数 0
EN

Stack Overflow用户

发布于 2011-02-18 02:49:21

代码语言:javascript
运行
复制
<h:selectOneMenu 
    id="cardStatus" 
    value="#{someBean.cardStatus}"
    converter="selectItemConverter">
    <f:selectItem itemValue="#{null}" itemLabel="" />
    <f:selectItems  
        value="#{cardStatusBean.cardStatuses}"
        var="cardStatus"
        itemValue="#{cardStatus}"
        itemLabel="#{cardStatus.name}"
        itemDisabled="#{cardStatus.temporaryDisabled}"/>    
</h:selectOneMenu>

这将为您提供一个默认选择,其值为null,标签为空。这会实现你正在寻找的目标吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5008085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档