在使用API搜索数据库时,我发现当我同时按下两个或多个键时,我会收到重复的AJAX响应;即Ctrl + V将文本粘贴到表单中。有没有办法过滤可能出现的Control,Alt或其他组合键?
$("#searchbar").on('keyup', function (e){
// e.preventDefault();
let value = e.target.value;
$.ajax({
url: 'api.domain.com/'+value,
data: {}
}).done(function (response_one){
$("#serp").html(`
<div class="response-container">
${response_one.param}
</div>
`);
$.ajax({
url: 'api.domain.com/feature'+value,
data: {}
}).done(function (response_two){
response_two.method(function (args){
$("#serp").append(`
<div class="response-container">
${response_two.param}
</div>
`);
});
});
});
});});
答案 0 :(得分:0)
使用https://api.jquery.com/keypress/代替Keyup。 这类似于keydown事件,除了修饰符和非打印键(如Shift,Esc和delete)触发keydown事件而不是keypress事件。