繁体   English   中英

Richfaces:将rich:comboBox限制为值列表的值

[英]Richfaces: limit rich:comboBox to values of the value list

我的页面中有以下简单的comboBox。

<rich:comboBox value="#{groupConfig.group}"
               styleClass="userCombo"
               filterNewValues="false"
               directInputSuggestions="true">
  <f:selectItems value="#{
    workflowConfigCtrl.groupsFor(groupConfig,appNode.approvalTier)
  }" />
</rich:comboBox>

它的工作异常出色,但可悲的是,它允许输入不属于proposalList的值(这很有意义,因为我启用了直接文本输入。

我希望启用直接文本输入,以便用户可以使用建议列表进行快速过滤(从一个庞大的组列表中,该列表可以包含100个组)。

同时,我不希望用户输入不在列表中的值。 当前方法检查用户何时保存整个表单。 有什么办法可以更早地限制它?

我尝试使用javascript onblur =处理程序来执行此操作,但是我找不到在dom中保存selectItem列表的位置。

您可以使用来访问javascript中的comboBox列表

#{rich:component('myComboBoxId')}.comboList.itemsText

和/或

#{rich:component('myComboBoxId')}.comboList.itemsValue

然后使用jQuery.inArray()验证项目是否在列表中。

您应该能够通过指定其ID来访问DOM中的此组合框,如以下示例所示。

<rich:comboBox value="#{groupConfig.group}"
               id="UniqueID"
               styleClass="userCombo"
               filterNewValues="false"
               directInputSuggestions="true">
  <f:selectItems value="#{
    workflowConfigCtrl.groupsFor(groupConfig,appNode.approvalTier)
  }" />
</rich:comboBox>

然后,您可以使用document.getElementById("UniqueID")在DOM中进行访问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM