javascript - 无法在 typeahead js 中设置与 displaykey 不同的 valuekey

标签 javascript typeahead.js twitter-typeahead

我希望能够在预输入下拉框中显示我的 JSON 返回数据中的 2 个字段,但将其中一个用作值。

实际上,下拉列表显示我想要的两个字段,当我选择一个值时,文本框只有我想要的一个字段。

但是一旦我离开文本框,它就会填充下拉值。

我的 HTML 字段:

<div class="form-group">
    <label for="txtlitm">Item Code:</label>
    <input type="text" class="form-control" id="txtlitm" name="txtlitm" autocomplete="off">
</div>

我的Javascript:

$('#txtlitm').typeahead(
{
    minLength: 4,
    highlight: true,
    hint: false
},
{
    displayKey: function(q) {
        return q.litm + " - " + q.dsc;
    },
    source: function (query, process) {
        $.getJSON('@VirtualPathUtility.ToAbsolute("~/home/GetItemCodes/")' + query, function (data) {
            process(data);
        });

    }
}).on('typeahead:selected', function (obj, data) {
    $('#txtlitm').val(data.litm);
});

最佳答案

使用显示,例如

displayKey: 'name',
display: 'seq',

valueKey 可能已弃用。我找到了另一个使用 display 的解决方案,它适用于 jquery-1.12.4typeahead 0.11.1。我初始化了 2 个 bloodhounds,但只想要一个数据来填充我的输入框。因此,用户可以输入 ID 或名称,单击建议,然后无论如何填充 ID。

关于javascript - 无法在 typeahead js 中设置与 displaykey 不同的 valuekey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24972952/

相关文章:

javascript - 我们如何将消息从主进程发送到 Electron 中的渲染进程

javascript - 如何添加新类并从类继承重构为行为委托(delegate)设计模式?

node.js - 即使有更多行,Typeahead 也仅显示 1 行

javascript - 在 Symfony2 中使用 Typeahead + Bloodhound 和 FOSJsRoutingBundle 执行查询

javascript - typeahead 方法返回相关结果

javascript获取类型/实例名称

javascript - 如何使用返回http promise的angular 2服务

jquery - Typeahead.js - 无法读取未定义的 'isArray' 的属性

typeahead.js - 提前输入/猎犬 : Removing duplicates from local

Typeahead.js 0.10.x : how to show number of results per category