Twitter typeahead查询不起作用

时间:2015-04-26 15:59:58

标签: javascript jquery twitter-bootstrap typeahead.js

我一直在使用twitter bootstrap typeahead js来完成我的一个项目。我根据自己的需要进行了配置,并且在一个月左右的时间里工作正常。现在突然间,我的代码无效,我最近还没有更新任何代码。我完全糊涂了。以下是我的代码。

var colleges = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    remote : {
        url : url + '/autocomplete?query=%QUERY',
        ajax : {
            beforeSend: function(jqXhr, settings){
                $('.search-button').find('.fa').removeClass('fa-search').addClass('fa-refresh');
            },
            complete : function(){
                $('.search-button').find('.fa').removeClass('fa-refresh').addClass('fa-search');    
            }
        }
    }
});
colleges.initialize(); 

$('#colleges').typeahead({
    hint: true,
    highlight: true,
    minLength: 1
},
{
    name: 'colleges',
    displayKey: 'name',
    slug : 'slug',
    source: colleges.ttAdapter()
}); 

$('#colleges').bind('typeahead:selected', function(obj, datum, name) {      
    window.location = url +'/'+ datum.slug;
});

$('.form').submit(function(e){
    if($('#colleges').val().length < 2){
        e.preventDefault();
    }
});

当我输入时,查询参数没有传递任何内容。网址就像 www.example.com/autocomplete?query=%QUERY而不是用户键入的实际查询。我也没有在控制台中得到任何错误。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

我有同样的问题。似乎他们制作了新版本。据我所知完全改写。所以你需要添加一行,所有这些都应该有效:

var colleges = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    remote : {
        url : url + '/autocomplete?query=%QUERY',
        wildcard: '%QUERY',**
        ajax : {
            beforeSend: function(jqXhr, settings){
            $('.search-button').find('.fa').removeClass('fa-search').addClass('fa-refresh');
            },
            complete : function(){
                $('.search-button').find('.fa').removeClass('fa-refresh').addClass('fa-search');    
            }
        }
    }
});

wildcard: '%QUERY',添加到猎犬的代码中,并且一切都应该很好