【发布时间】:2017-09-05 19:48:00
【问题描述】:
我正在尝试使用引导程序执行一个自动完成功能,该功能仅在相关的 inputText 包含超过 4 个字符时才必须显示选项列表。 这是我的 xhtml:
<script>
$(function(){
jQuery.noConflict();
var autocompPerson = $('.autocomp');
autocompPerson.typeahead({
source: [#{operationsFormBean.allPersonFilteredList}],
});
});
</script>
<div class="col-md-8 pb0 pl0">
<h:inputText id="auPerson"
value="#{backingBeanRef['selectedPersonName']}"
styleClass="form-control autocomp wo-borders bg-transparent">
<a4j:ajax
event="keyup" listener="#{backingBeanRef['personFilteredList']}"
render="operations_form_panel"/>
</h:inputText>
</div>
方法 personFilteredList() 在我的 java Bean 中,它控制输入是否超过 4 个字符。
如果我使用事件“keyup”,每当我在 inputText 中写入一个字符时,我都会失去对它的关注,并且列表会立即消失。我知道它正在工作,因为它仅在我写超过 4 个字符时才显示列表。问题是:当调用该方法时,我必须渲染 inputText 才能显示列表,这让我失去了焦点,导致列表消失。
你知道我是否可以使用像“updater”这样的 js 函数,它在我每次写东西时更新我的 selectedPersonName 而不使用事件 keyup?
提前致谢。
【问题讨论】:
-
PrimeFaces 包含
<p:autoComplete>标签的内置自动完成功能。
标签: javascript twitter-bootstrap jsf autocomplete typeahead.js