jQuery 自动完成子字符串匹配

jQuery Autocomplete Substring Matching

我正在尝试 jQuery 自动完成,这样我就可以搜索多个词。

例如,如果我在列表中有 smartvery smartsuper smart,我希望能够开始输入 smar 并拥有所有出现三个选项。

从某种意义上说,如果我像 over 这样从一开始就开始输入,它会建议 over smart,这是正确的。但是如果我只输入 smart 这是所需的输出,它不会建议它。

知道如何调整代码以便搜索并建议说出列表中的子字符串吗?

http://jsfiddle.net/UKgD6/390/

var acList = ['smart',
'over smart',
'smart land',
'under smart',
'very smart'
];

$('#ac').autocomplete({
  source: function( request, response ) {
    var matches = $.map( acList, function(acItem) {
      if ( acItem.toUpperCase().indexOf(request.term.toUpperCase()) === 0 ) {
        return acItem;
      }
    });
    response(matches);
  }
});

您的问题可以通过更改 indexOf() 检查来解决。将 === 0 更改为 !== -1。这将 return 匹配的任何内容,无论搜索字符串的索引在实际字符串中是什么。

http://jsfiddle.net/UKgD6/391/