jquery自动完成查询

时间:2012-04-23 10:17:50

标签: jquery jquery-ui autocomplete jquery-ui-autocomplete

我需要在自动完成的结果列表中添加另一个元素。此元素不应该是可点击的,应该作为搜索列表中的信息。

我正在尝试以下代码并使用appendTo选项,但它似乎无法正常工作

var acOptions = {
    source: userNames,
    minLength: 1,
    appendTo: "<li class='ui-menu-item' role='menuitem'>Search by username </li>"
};

$('input.userName').autocomplete(acOptions);

有人可以在这里指导我吗?

1 个答案:

答案 0 :(得分:4)

这是http://jqueryui.com/demos/autocomplete/#categories你正在寻找的吗? 这是一个有效的演示http://jsfiddle.net/pomeh/XJ47e/

HTML代码

<div class="demo">
    <label for="search">Search: </label>
    <input id="search" />
</div>

<p>A categorized search result. Try typing "a" or "n".</p>

Javascript代码

$.widget("custom.catcomplete", $.ui.autocomplete, {
    _renderMenu: function(ul, items) {
        var self = this,
            currentCategory = "";
        $.each(items, function(index, item) {
            if (item.category != currentCategory) {
                ul.append("<li class='ui-autocomplete-category'>" + item.category + "</li>");
                currentCategory = item.category;
            }
            self._renderItem(ul, item);
        });
    }
});


var data = [
    { label: "anders", category: ""},
    { label: "andreas", category: ""},
    { label: "antal", category: ""},
    { label: "annhhx10", category: "Products"},
    { label: "annk K12", category: "Products"},
    { label: "annttop C13", category: "Products"},
    { label: "anders andersson", category: "People"},
    { label: "andreas andersson", category: "People"},
    { label: "andreas johnson", category: "People"}
];

$("#search").catcomplete({
    delay: 0,
    source: data
});

CSS代码

.ui-autocomplete-category {
    font-weight: bold;
    padding: .2em .4em;
    margin: .8em 0 .2em;
    line-height: 1.5;
}​