我希望能够在预输入下拉框中显示我的 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.4
和 typeahead 0.11.1
。我初始化了 2 个 bloodhounds
,但只想要一个数据来填充我的输入框。因此,用户可以输入 ID 或名称,单击建议,然后无论如何填充 ID。
关于javascript - 无法在 typeahead js 中设置与 displaykey 不同的 valuekey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24972952/