Все эти методы не подходят, если при нажатии на кнопку "сохранить", вы редиректите на другую страницу. Самый правильный вариант - отправлять запрос не сразу после нажатия клавиши, а спустя какое-то время. Некий таймер, который обнуляется, если пользователь продолжает вводить текст. Обычно такой метод называется "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()