我正在使用Coffeescript。我在autocomplete方法中的源代码返回一个哈希(关联数组),我想在下拉列表中显示一些元素。我在下面解释你
首先,我用这个方法调用了我的coffeescript
jQuery ->
$("#searchbox").autocomplete
source: "/searches"
回复是["St James's Hotel","Criterion Restaurant"]
左,因此下拉列表正确显示了这些标签。但现在我有回应
[
{"id":"ChIJD_XW2NcEdkgRS6oeZ95kXGo","label":"St James's Hotel"},
{"id":"ChIJYRe8_tMEdkgRr_J6bdITC1U","label":"Criterion Restaurant"}
]
因此,在控制台中显示上述响应时,不会显示下拉列表。我只想在下拉列表中显示标签。我现在有下面的咖啡因:
jQuery ->
$("#searchbox").autocomplete
source: "/searches"
create: (event,ui) ->
ui.item.label
select: (event,ui) ->
console.dir ui
console.dir ui.item.id
任何帮助/指导都将欣赏
更新 根据官方文档,如果您的对象具有“标签”和“值”属性,jQuery将知道如何使用它。我也尝试过这个东西(没有涉及创建选项的意思)。谢谢你的方式,我正在根据那个更新我的问题
答案 0 :(得分:0)
根据official doc,如果您的对象有"标签"和"价值"属性,jQuery会知道如何使用它。那么你可以用源格式中的 value 更改 id 吗?如果没有,您必须为自动填充功能提供一个功能,并构建一个标签数组来显示。
我不太了解jQuery,但它应该是这样的:
function getLabels(request, response) {
// do ajax request to get the hash
ajax.get('/searches?term=' + request, function(data) {
data = JSON.parse(data);
return data.map(function(obj) {
return obj['label'];
})
});
}