有没有办法过滤多个密钥' jQuery事件监听器的事件

时间:2017-12-01 23:56:10

标签: javascript jquery json ajax promise

在使用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>
                `);     

            });

        });

    });

});});

1 个答案:

答案 0 :(得分:0)

使用https://api.jquery.com/keypress/代替Keyup。 这类似于keydown事件,除了修饰符和非打印键(如Shift,Esc和delete)触发keydown事件而不是keypress事件。