h:selectmanyListbox 使“选择”选项在至少选择一个选项时无法选择
Posted
技术标签:
【中文标题】h:selectmanyListbox 使“选择”选项在至少选择一个选项时无法选择【英文标题】:h:selectmanyListbox make "choose" option unselectable when at least one option is selected 【发布时间】:2015-06-18 07:44:22 【问题描述】:是否可以在<h:selectManyListbox>
中有一个默认选项,如“--choose--”,当没有选择选项时可以选择它。 When the some value is chosen, then it must be unselectable.
<h:selectManyListbox value="#bean.value"
class="form-control">
<f:selectItems value="#bean.dropdownValues" var="value" itemLabel="#value" itemValue="#value"/>
</h:selectManyListbox>
【问题讨论】:
@BalusC。当然。我已经编辑了我的问题。谢谢 【参考方案1】:只需将其添加为另一个 <f:selectItem>
并请求一些 javascript 帮助以在更改事件期间选择任何值时禁用它。
<h:selectManyListbox ... onchange="options[0].disabled=!!value">
<f:selectItem itemLabel="--choose--" itemValue="#null" />
<f:selectItems ... />
</h:selectManyListbox>
options[0]
指的是选择元素的第一个选项。 !!value
基本上将选中的项目值转换为boolean
(当它不为空/null 时为true
),适用于disabled
属性。
另见:
Best way to add a "nothing selected" option to a selectOneMenu in JSF【讨论】:
感谢您的回答。我尝试了上述解决方案。但是一旦我选择了有效选项,我就无法选择 --choose-- 选项。我有什么遗漏吗? 但是你明确提到了“那么它就不能选择默认的虚拟值了。”我理解错了吗? 很抱歉给您带来了困惑。我的意思是,当用户选择任何有效选项时,默认选项应该是可见的。用户在取消选择任何其他有效选项之前不能选择虚拟选项。考虑到列表框不是强制性的。我想离开下拉菜单而不选择任何选项。 因此,使其始终无法选择(只需使用itemDisabled="true"
)也不是一种选择?
是的,正确。字段是非强制性的,用户可以随时选择有效选项或假人离开以上是关于h:selectmanyListbox 使“选择”选项在至少选择一个选项时无法选择的主要内容,如果未能解决你的问题,请参考以下文章