RichFaces的旧SuggestionBox组件(版本3.3 ...是的,我必须维护遗留代码,为我的命运哭泣)非常有用,但有一个缺点。
如果用户在输入组件中输入一些文本,然后单击除建议列表中的条目之外的其他位置,则保留部分填充的输入。它很丑陋,可能令人困惑,给人的印象就是当它不是时被选中。
在这种情况下,我希望单独调用bean,如果没有选择任何内容,则允许我删除文本。
示例代码:
<h:inputText id="selectorInput" value="#{backingBean.inputText}" label="Select something:" />
<rich:suggestionbox id="suggestion" for="selectorInput" suggestionAction="#{backingBean.resolveSuggestions}" var="sug">
<a4j:support event="onselect" reRender="someForm" action="#{backingBean.select(sug)}" />
<h:column>#{sug.name}</h:column>
</rich:suggestionbox>
我尝试添加a4j:支持h:inputText with event =&#34; onblur&#34;,但在 backingBean.select(sug)之前称为,并且无法知道如果选择了某种东西,那么它几乎是无用的。将其他事件添加到suggestionbox本身似乎根本不起作用,甚至打破暗示建议框。
还有其他办法吗?
答案 0 :(得分:0)
支持JavaScript对象具有getSelectedItems()
方法。如果没有选择任何内容,它将返回一个空数组。
要使用对象
document.getElementById(clientId).component