2017-06-15 62 views
0

我試圖做jQuery自動完成,使我可以搜索多個單詞。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

您的問題可以通過改變indexOf()檢查固定。將=== 0更改爲!== -1。無論搜索字符串的索引在實際字符串中如何,都會返回任何匹配的內容。

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

+0

哦,我的天哪,你真了不起!精彩的作品 –