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

时间:2014-07-26 16:11:30

标签: javascript typeahead.js twitter-typeahead

我希望能够在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);
});

1 个答案:

答案 0 :(得分:1)

使用display,例如

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

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