我正在使用bootstrap-typehead函数来实现自动完成框。

  $(function() {
    var availableTags = [ "test1", "test2","test3",....];


    $('.typeahead').typeahead({
      source: availableTags
    });
  });
});


尽管这样做有效,但自由文本也可以作为输入。我注意到许多人都想要此功能,而没有很好的解决方案说明。修改此内容以使条目仅与availableTag的条目匹配的最佳方法是什么?例如如果输入“ hello”,则将其清除。

我想要此功能(而不是正常的下拉菜单)的原因是有数千个availableTag。向下滚动一长串列表似乎不合逻辑。谢谢

最佳答案

尝试这样的事情:

$(function(){
    var availableTags = [ "test1", "test2","test3",....]; // all data required for typeahead

    $(".typeahead").typeahead({
                        source: availableTags
                    })
                    .blur(function(){
                        if(availableTags.indexOf($(this).val()) === -1)
                            $(this).val("");
                    });
});


当用户单击远离输入的位置(失去焦点)时,这将检查值是否在数组availableTags内,如果不在数组中,则将输入的值重新设置为空。

09-20 14:01