簡體   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