【发布时间】:2011-09-05 15:30:16
【问题描述】:
我的 Web 应用程序中有一个可用的自动完成字段,我正在寻找一种方法来提高该字段的可用性,方法是在使用箭头键向下滚动可用选项时以某种方式自动跳过类别字段(输入部分搜索词后)。
例如,如果用户开始输入“an”,自动完成将显示两个类别,每个类别中都有项目。用户想要在“人员”下的列表中选择一项。他们使用箭头键向下移动列表。目前,此代码将结果中的类别作为列表项插入。使用箭头键时,您必须移动经过它们才能突出显示并选择结果。应用程序可以通过什么方式自动跳过这些类别标题?
$.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-menu-item ui-category'>" + item.category + "</li>" );
currentCategory = item.category;
}
self._renderItem( ul, item );
});
}
});
var data = [
{ 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" }
];
$( "#textfield" ).catcomplete({
source: data,
select: function(event, ui) {
window.location.hash = "id_"+escape(ui.item.id);
}
});
【问题讨论】:
标签: jquery-ui autocomplete jquery-ui-autocomplete categories