2017-06-15 9 views
0

私は複数の単語を検索できるようにjQueryオートコンプリートを実行しようとしています。例えばjQueryオートコンプリート部分文字列マッチング

私はリストにsmartvery smart、およびsuper smartを持っている場合、私はsmarの入力を開始し、すべての3つのオプションが現れていできるようにしたいと思います。

このコードは、私が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

oh my goshあなたは素晴らしいです!華麗に動作する –

関連する問題