Работает только с первой попытки при прослушивании нажатий клавиш в поле формы ввода с помощью jquery listener

Вот основная ситуация: Я хочу иметь возможность прослушивать ввод пользователя в текстовом поле ввода, код будет использовать ajax для проверки ввода после паузы в 5 секунд, по сравнению с кэшированным ответом.
Проверка работает отлично с первой попытки (через 5 секунд). Но если пользователь переходит в другое поле, а затем пытается ввести правильный ответ во второй раз, редактируя то же поле, ничего не происходит, ajax-запрос не выполняется. Кажется, что слушатель исчез или перестал работать.

Вот код на стороне шаблона:

let ajax_call = function (endpoint, request_parameters) {
   $.getJSON(endpoint, request_parameters)
            .done(response => { ...... })  //response handling
};

answerInputs.on('keydown', function(){
    answer = $(this);
    setTimeout(function(){
        var answer_seq = answer.data("sequence");
        answers[answer_seq] = answer.val();
        var request_parameters  = {'answers': JSON.stringify(answers), 'idList': JSON.stringify(idList)}
        // if scheduled_function is NOT undefined, cancel the execution of the function
        if (typeof(scheduled_function)!='undefined') {
            clearTimeout(scheduled_function);
        }
        // setTimeout returns the ID of the function to be executed
        scheduled_function = setTimeout(ajax_call, delay_by_in_ms, endpoint, request_parameters);
        }, 5000);
});
Вернуться на верх