在source: function( request, response ) {...}方法里处理。
用输入的关键字(request.term)去匹配每个选项的内容,通过正则替换把匹配到的部分加上加粗标签或其他样式,作为返回对象的label属性的值。
jQueryUI Autocomplete的Demos里有个ComboBox的例子可以参考(1.10的例子里把关键词高亮代码去掉了,你可以参考1.9的例子,即下面这部分代码)source: function( request, response ) {
var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
response( select.children( "option" ).map(function() {
var text = $( this ).text();
if ( this.value && ( !request.term || matcher.test(text) ) )
return {
label: text.replace(
new RegExp(
"(?![^&;]+;)(?!<[^<>]*)(" +
$.ui.autocomplete.escapeRegex(request.term) +
")(?![^<>]*>)(?![^&;]+;)", "gi"
), "<strong>$1</strong>" ),
value: text,
option: this
};
}) );
}

解决方案 »

  1.   

    返回数据是json的话source: function( request, response ) {
        var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
        response( select.children( "option" ).map(function() {
            var text = $( this ).text();
            if ( this.value && ( !request.term || matcher.test(text) ) )
                return {
                    label: text.replace(
                        new RegExp(
                            "(?![^&;]+;)(?!<[^<>]*)(" +
                            $.ui.autocomplete.escapeRegex(request.term) +
                            ")(?![^<>]*>)(?![^&;]+;)", "gi"
                        ), "<strong>$1</strong>" ),
                    value: text,
                    option: this
                };
        }) );
    }这块代码怎么写