我试图做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。无论搜索字符串的索引在实际字符串内是什么,这都将返回匹配的任何内容。

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

关于javascript - jQuery自动完成子字符串匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44576602/

10-11 12:25