オートコンプリート ウィジェットのドキュメントから
使用するバリアントに関係なく、ラベルは常にテキストとして扱われます。ラベルを html として扱いたい場合は、Scott González の html 拡張を使用できます。デモはすべて、ソース オプションのさまざまなバリエーションに焦点を当てています。ユース ケースに一致するものを探して、コードをチェックしてください。
Scott González の html 拡張機能はhttps://github.com/scottgonzalez/jquery-ui-extensions/blob/master/autocomplete/jquery.ui.autocomplete.html.jsです。以下のコードも掲載しました。
/*
* jQuery UI Autocomplete HTML Extension
*
* Copyright 2010, Scott González (http://scottgonzalez.com)
* Dual licensed under the MIT or GPL Version 2 licenses.
*
* http://github.com/scottgonzalez/jquery-ui-extensions
*/
(function( $ ) {
var proto = $.ui.autocomplete.prototype,
initSource = proto._initSource;
function filter( array, term ) {
var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );
return $.grep( array, function(value) {
return matcher.test( $( "<div>" ).html( value.label || value.value || value ).text() );
});
}
$.extend( proto, {
_initSource: function() {
if ( this.options.html && $.isArray(this.options.source) ) {
this.source = function( request, response ) {
response( filter( this.options.source, request.term ) );
};
} else {
initSource.call( this );
}
},
_renderItem: function( ul, item) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( $( "<a></a>" )[ this.options.html ? "html" : "text" ]( item.label ) )
.appendTo( ul );
}
});
})( jQuery );
編集拡張機能を使用しながら以下のコードを試してください
$( "#global-search" ).catcomplete({
delay: 0,
html: true,
source: "globalsearch.php"
});