gpt4 book ai didi

javascript - 在 Coffeescript 中自定义自动完成下拉菜单

转载 作者:行者123 更新时间:2023-11-28 06:51:56 26 4
gpt4 key购买 nike

我正在使用 Coffeescript 。我在自动完成方法中的源返回给我一个哈希(关联数组),我想在下拉列表中显示一些元素。我在下面详细解释一下

首先,我在我的 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"}
]

因此,当上述响应在控制台中可见时,不会进行下拉菜单。我只想在下拉列表中显示标签。我现在有如下所示的 CoffeeScript :

jQuery ->
$("#searchbox").autocomplete
source: "/searches"
create: (event,ui) ->
ui.item.label
select: (event,ui) ->
console.dir ui
console.dir ui.item.id

任何帮助/指导将不胜感激

更新根据官方文档,如果你的对象有“label”和“value”属性,jQuery就会知道如何使用它。我也尝试过这个事情(意味着不涉及创建选项)。顺便说一句,谢谢,我正在据此更新我的问题

最佳答案

根据official doc ,如果你的对象有“label”和“value”属性,jQuery就会知道如何使用它。那么你可以在源格式中通过更改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'];
})
});
}

关于javascript - 在 Coffeescript 中自定义自动完成下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32884710/

26 4 0