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

标签 javascript jquery coffeescript

我正在使用 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/

相关文章:

javascript - 使用 CoffeeScript 以编程方式检查复选框

javascript - Chai 将错误记录到控制台而不是测试失败

javascript - 火狐扩展 : observing "user-interaction-inactive" across multiple browser windows

javascript - Phaser 可拖动分组世界地图

javascript - 需要对我的幻灯片代码进行一些修改

javascript - AngularJS:初始复选框值不在模型中

javascript - 隐藏在可滚动表格标题中的下拉值 - Primeng

javascript - 如何使 fancyBox 2 调整其高度以适合其内容?

javascript - 无法通过 AJAX 发送数组

javascript - meteor .js : how to pass the data context of one helper to another helper?