私は次のようなJQueryオートコンプリートを探しています。
- 部分一致を検索
- 出現する場所をすべて強調表示します
- 複数の単語を許可する
- リモートデータソースを許可します(つまり、PHPは、キーを押すたびに動的に更新されるクエリ文字列に基づいてデータベースの結果をフィルタリングします)
だから例えば
検索:「めは家」
戻り値:「家に帰る方法を教えて」
Googleスタイルのオートコンプリートの一般的な期待にもかかわらず、これを提供できるものを見つけるのにひどい時間を過ごしています。
jquery uiオートコンプリートのモンキーパッチ(jQueryUI:オートコンプリートプラグインの結果をカスタムフォーマットするにはどうすればよいですか?)は近づいていますが、動的なリモートデータソースを提供していないようです。
また、次のスクリプトを使用しました。
var termTemplate = "<span class='ui-autocomplete-term'>%s</span>";
$("#f input").autocomplete({
source: "livesearch.php",
open: function(e, ui) {
var origKeyword = $("#f input").val();
var acData = $(this).data('autocomplete');
acData.menu.element.find('a').each(function() {
var me = $(this);
var regex = new RegExp(acData.term, "gi");
me.html(me.text().replace(regex, function(matched) {
return termTemplate.replace('%s', matched);
}));
});
},
select: function(event, ui) {
var keyword = $("#f input").val();
$("#f input").val('');
window.location.href = 'MYURLHERE?VARIABLE=' + ui.item.value;
return false;
},
focus: function(event, ui) {
return false;
}
});
ただし、スペースで区切られた複数の単語の強調表示は処理されません。
誰か提案があれば、とてもありがたいです。