我当前的代码如下所示:
$(document).ready(function () {
$('#txtSearchForTrainingFacility').autocomplete({
select: function (event, ui) {
searchCallback(event, ui);
}, // select
source: function (request, response) {
$.ajax({
url: 'http://localhost:49795/Ajax/Search/' + $('#txtSearchForTrainingFacility').val(),
dataType: 'json',
data: {},
success: function (data) {
response( $.map( data, function( item ) {
return {
label: item.Name,
value: item.Value,
id: item.ID
} // return object
})) // response
} // success
}) // ajax
} // source function
}); // autocomplete
}); // document.ready
您可以看到,在ajax.success
事件函数中,我正在映射返回一个具有 、 和 属性的对象label
-value
但id
该autocomplete.select
方法的ui.item
参数仅包含label
和value
。
我究竟做错了什么?如何让id
属性出现在autocomplete.select
的ui.item
对象上?
ajax 调用的结果是一个 json 数组,每个元素都是一个包含属性
Name
、Value
和的对象ID
。
注意
如果您将 ajax 调用替换为固定数组[{id: 1, label: 'bob', value: 'creep'}, {id: 2, label: 'joe', value: 'friend'}]
,则该id
属性似乎在 select 事件中通过就好了。