4
私はJqueryオートコンプリートを使用しています。ユーザーが2文字を入力して待機した後、別の文字を入力します。最初の応答が2番目の応答の後に来ると、2番目のリストが一時的に表示され、最初のリストが表示されます。ユーザーが入力を開始した後に最初のリクエストをキャンセルするにはどうすればよいですか?Jquery UIのオートコンプリートで、以前のテキストのレスポンスが表示されます
$("#city").autocomplete({
source: function(request, response) {
$.ajax({
url: "/geo/json_autocomplete.php",
dataType: "json",
data: {
term: $("#city").val(),
countryid: $("#countryid").val()
},
success: function(data) {
response($.map(data, function(item) {
//console.debug(item.value+" "+item.label+" "+item.id);
return {
label: item.label,
value: item.value,
id: item.id
}
}));
}
});
},
minLength: 2,
delay: 500,
select: function(event, ui) {
$("#cityid").val(ui.item.id);
showForm();
}
});
「async:false」をオプションとしてajaxリクエストに追加してみてください。私はそれがAjaxリクエストで注文を維持する必要があるときに役立つことを発見しました。このためにもうまくいくかもしれません。 – Lester
@Lester:これはお勧めできません。 'async:false'を指定すると、リクエストの間ブラウザがロックされます。 –