Como acionar um evento no texto de entrada depois que eu paro de digitar / escrever?
Eu quero acionar um evento logo depois que eu parei de digitar (não durante a digitação) caracteres na minha caixa de texto de entrada.
Eu tentei com:
$('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);
});
Mas este exemplo produz um tempo limite para cada caractere digitado e recebo cerca de 20 solicitações AJAX se eu digitar 20 caracteres.
Neste violino Eu demonstro o mesmo problema com um alerta simples em vez de um AJAX.
Existe uma solução para isso ou estou apenas usando uma abordagem ruim para isso?