Все эти методы не подходят, если при нажатии на кнопку "сохранить", вы редиректите на другую страницу. Самый правильный вариант - отправлять запрос не сразу после нажатия клавиши, а спустя какое-то время. Некий таймер, который обнуляется, если пользователь продолжает вводить текст. Обычно такой метод называется "debounce", и уже реализован в разных библиотеках, например в
underscrore
Если подключать библиотеку не хочется, то можно написать самому, примерно так:
function debounce(method, timeout) {
clearTimeout(method._tId);
method._tId = setTimeout(function(){
method();
}, timeout);
} }, timeout);
}
Описываем нужный метод:
function checkTitle() {
//Код проверки
}
И вешаем его на событие:
$('input').on('keyup', function() {
debounce(checkTitle, 1000);
});
В итоге, если после ввода последнего символа прошла секунда и пользователь больше ничего не ввел, вызовется метод checkTitle()