如何只在typeahead中获得匹配结果的第一个字符

时间:2016-08-01 16:24:52

标签: javascript typeahead

我只想从用户输入的匹配字符开始显示结果。我想避免它们发生在中间。我怎么能在预先做到这一点。

这是我的js代码:

var cities = new Bloodhound({
  datumTokenizer: Bloodhound.tokenizers.whitespace,
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  prefetch: '/getcities'
});

$('#city').typeahead({
    hint: true,
    highlight: true,
    minLength: 3,
    limit: 10
}, {
  name: 'cities',
  source: cities
});

1 个答案:

答案 0 :(得分:0)

您必须重新定义datumTokenizer。这是一个示例,假设您的自动完成值是针对字段" key"在一个对象数组

datumTokenizer: function(d){
                        var tokens = [];
                        var stringSize = d.key.length;                            
                        for (var i = 0; i<= stringSize; i++){
                              tokens.push(d.key.substr(0, i));
                          }
                        return tokens;
                    },