【发布时间】:2026-02-10 00:25:01
【问题描述】:
我正在尝试从带有类别的自动完成示例中获取生成的列表框值,但我无法让它像其他示例一样工作。我一定是在做傻事。
$.widget("custom.catcomplete", $.ui.autocomplete, { _renderMenu:函数(ul,项目){ var self = 这个, 当前类别 = ""; $.each(项目,功能(索引,项目){ if ( item.category != currentCategory ) { ul.append("" + item.category + "" ); currentCategory = item.category; } self._renderItem(ul, item); }); }, /* 我添加了这个 */ 选择:函数(事件,用户界面){警报(ui.item.value); } }); $(函数(){ 变量数据 = [ { 标签:“anders”,类别:“”}, { 标签:“安德烈亚斯”,类别:“”}, {标签:“antal”,类别:“”}, { 标签:“annhhx10”,类别:“产品”}, { 标签:“annk K12”,类别:“产品”}, { 标签:“annttop C13”,类别:“产品”}, {标签:“安德斯安德森”,类别:“人”}, {标签:“安德烈亚斯安德森”,类别:“人”}, {标签:“安德烈亚斯约翰逊”,类别:“人”} ];
$( "#search" ).catcomplete({
delay: 0,
source: data
});
});
</script>
【问题讨论】:
-
当你说不起作用时,它甚至会触发自动完成代码吗?如果有任何错误,您是否在 firebug 中设置了断点/检查?
-
没有错误。下拉菜单正常工作,但是当我选择一个项目时,我没有收到警报。具有此代码工作的其他自动完成示例。所以我要么把它放在错误的地方,要么是别的什么。我已经玩弄了很多,但无法得到它。
-
我想通了。我需要把它放在这里: $("#search").catcomplete({ delay: 0, source: data, select: function(event, ui){ alert(ui.item.label); } });跨度>