我希望能够在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);
});
答案 0 :(得分:1)
使用display
,例如
displayKey: 'name',
display: 'seq',
valueKey
可能已被弃用。我找到了使用display
的其他解决方案,它适用于jquery-1.12.4
和typeahead 0.11.1
。我初始化2 bloodhounds
,但只想要一个数据来填充我的输入框。因此,用户可以键入ID或名称,单击建议,然后使用ID填充。