2

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

1 回答 1

1

使用display,例如

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

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

于 2017-11-30T19:57:45.403 回答