Вы можете объединить обработчик событий keypress
с setTimeout
, чтобы отправлять запрос Ajax через заданное количество времени после нажатия клавиши, отменяя и перезапуская таймер, если другое нажатие клавиши происходит до его окончания. Предполагая, что у вас есть текстовая область с идентификатором «myTextArea» и функция обратного вызова Ajax с именем doAjaxStuff
:
function addTextAreaCallback(textArea, callback, delay) {
var timer = null;
textArea.onkeypress = function() {
if (timer) {
window.clearTimeout(timer);
}
timer = window.setTimeout( function() {
timer = null;
callback();
}, delay );
};
textArea = null;
}
addTextAreaCallback( document.getElementById("myTextArea"), doAjaxStuff, 1000 );