jQuery自动完成子串匹配

时间:2017-06-15 20:35:43

标签: javascript jquery jquery-ui-autocomplete

我尝试执行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);
  }
});

1 个答案:

答案 0 :(得分:1)

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

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