複数の一致を強調表示する方法を示す例をいくつか見つけました。たとえば、「アートデザイン」と入力した場合、「アートとデザインの学位」として強調表示したいと思います。
次の例(静的配列を使用している場合でも)は、私が求めているものです:http: //jsfiddle.net/Q4jy9/1/
ただし、これをリモートphpデータソースで機能させる方法がわかりません。以下は私が使用している現在のコードです。キーを押すたびに用語が私のphpに送信され、データベースから一致するものが選択されます。
以下のスクリプトを変更して複数の単語/一致を強調表示できるようにする方法、または上記のリンクのスクリプトを変更して外部データソースで機能する方法はありますか?
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;
}
});