Richfaces:限制rich:comboBox到值列表的值

DTh*_*ght 5 jsf richfaces

我的页面中有以下简单的组合框.

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

它工作得非常好,但遗憾的是它允许输入不属于suggestionList的值(这是有意义的,因为我启用了直接文本输入.

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

同时我不希望用户输入不在列表中的值.当前方法检查用户何时保存整个表单.有没有办法提前限制它?

我尝试使用javascript onblur = handler来完成它,但我找不到在dom中保存selectItem列表的位置.

小智 3

您可以使用 javascript 访问组合框列表

#{rich:component('myComboBoxId')}.comboList.itemsText
Run Code Online (Sandbox Code Playgroud)

和/或

#{rich:component('myComboBoxId')}.comboList.itemsValue
Run Code Online (Sandbox Code Playgroud)

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