自动填写限制

时间:2017-04-10 16:44:16

标签: javascript twitter-bootstrap jsf autocomplete typeahead.js

我正在尝试使用bootstrap,一个自动完成函数,它在inputText上工作,只有当相关的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个以上的字符。

如果我使用事件&#34; keyup&#34;,每当我在inputText中写一个字符时,我都会失去对它的关注,列表立即消失。我知道它正在工作,因为只有当我写了超过4个字符时它才显示列表。问题是:当调用方法时,我必须渲染inputText才能显示列表,这会让我失去焦点,使列表消失。

你知道我是否可以使用像#34; updater&#34;这样的js函数每次我在不使用事件密钥的情况下写东西时都会更新我的selectedPersonName吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

使用AJAX oncomplete JS回调钩子来更新typeahead的源代码并重新渲染inputText。请参阅此post以重置bootstrap typeahead中的源。