我当前的代码如下所示:
$(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 事件中通过就好了。