Как вызвать событие во входном тексте после того, как я перестал набирать / писать?

Я хочу вызвать событие сразу после того, как я перестал набирать (а не печатать) символы в моем текстовом поле ввода.

мы пробовали с:

$('input#username').keypress(function() {
    var _this = $(this); // copy of this object for further usage

    setTimeout(function() {
        $.post('/ajax/fetch', {
            type: 'username',
            value: _this.val()
        }, function(data) {
            if(!data.success) {
                // continue working
            } else {
                // throw an error
            }
        }, 'json');
    }, 3000);
});

Но этот пример выдает тайм-аут для каждого набранного символа, и я получаю около 20 запросов AJAX, если набираю 20 символов.

На этой скрипке Я демонстрирую ту же проблему с простым предупреждением вместо AJAX.

Есть ли решение для этого или я?Я просто использовал плохой подход для этого?

Ответы на вопрос(10)

Ваш ответ на вопрос