我正在使用 jquery ui 自动完成功能。自动完成源来自 ajax 请求。然后,当用户单击一个选项时,我发出另一个 ajax 请求以从服务器获取与该选项相关的数据。
Erveything 工作正常,除了在第二个 ajax 请求之后,当我在自动完成框中键入内容时,它会显示我在第二个请求中获得的数据。
第二个请求的数据覆盖了第一个请求的数据......
它在占位符中显示第二个请求的结果。然而,在那之后,当你再次输入自动完成时,它会将成功请求中的数据作为它的来源!最后一个数据被用作自动完成源!
你能帮我解决这个问题吗?
这是我的代码:
$("#sinput").autocomplete({
source: function (request, response) {
$.ajax({
type: 'GET',
url: 'Handlers/AutoCompleteHandler.ashx?type=html',
dataType: "json",
cache: false,
data: { term: request.term },
success: function (data) {
response($.map(data, function (item) {
return {
label: item.label,
id: item.value,
};
}));
},
});
},
minLength: 3,
select: function (event, ui) {
var content_id = ui.item.id;
$.ajax({
type: 'GET',
url: 'Handlers/GetContentHandler.ashx?id=' + content_id + '&type=html',
dataType: 'json',
cache: false,
success: function (data) {
$('#placeholder').html(data[0].label)
}
});
}
});