Работает только с первой попытки при прослушивании нажатий клавиш в поле формы ввода с помощью 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);
});