1
私は入力フィールドを持っています。このフィールドにキーアップがあると、私はリクエストを送信します。私の問題は、別のキーアップイベントが発生したときです。保留中のリクエストをすべてキャンセルする必要があります。私は多くの答えを見てきましたが、私は解決策を見出していません。保留中のajaxリクエストをキャンセルする方法typeahead.js
var data = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
wildcard: '%QUERY',
url: $('.typeahead').attr('data-autocomplete-url') + '?term=%QUERY',
rateLimitBy: 'throttle',
ajax: {
async: true,
dataType: 'json',
crossDomain: true,
}
}
});
$('.typeahead').typeahead({
hint: true,
highlight: true,
minLength: 1
},{
name: 'company',
displayKey: 'id',
limit: Infinity,
source: data,
templates: {
empty: [
'<div style="margin: 4px 30px 4px 30px;" class="empty-message">',
' Aucun résultat trouvé ',
'</div>'
].join('\n'),
suggestion: function(data) {
if(data.id_db == 'more'){
return '<p style="pointer-events:none">'+ data.text +'</p>';
}else{
return '<p>'+ data.text +'</p>';
}
}
}
}).on('typeahead:select', function(ev, data) {
$('#id_db').val(data.id_db);
changeCompany($(this));
});
あなたは少しあなたのリモート設定を変更して、中止()関数を使用して欲しいものacchieveことができます。私の答えはこちら:https://stackoverflow.com/a/46959188/3638529 – joalcego