jquery ui オートコンプリートを使用しています。オートコンプリート ソースは ajax リクエストから来ています。次に、ユーザーがオプションをクリックすると、そのオプションに関連するデータをサーバーから取得するために別の ajax 要求を作成しました。
Erveything は正常に動作しますが、2 番目の ajax リクエストの後、オートコンプリート ボックスに何かを入力すると、2 番目のリクエストで取得したデータが表示されます。
2 番目のリクエストのデータは、最初のリクエストのデータをオーバーライドしています...
2 番目のリクエストの結果がプレースホルダーに表示されます。ただし、その後、オートコンプリートに再度入力すると、成功リクエストに含まれるデータがソースとして取得されます。最後のデータがオートコンプリート ソースとして使用されています!
この問題を解決するのを手伝ってくれませんか?
これが私のコードです:
$("#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)
}
});
}
});