Quiero activar un evento justo después de dejar de escribir (no mientras escribo) caracteres en mi cuadro de texto de entrada.
Lo he probado con:
$('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);
});
Pero este ejemplo produce un tiempo de espera para cada carácter escrito y obtengo alrededor de 20 solicitudes AJAX si escribo 20 caracteres.
En este violín demuestro el mismo problema con una alerta simple en lugar de un AJAX.
¿Existe una solución para esto o simplemente estoy usando un mal enfoque para esto?