Chcę wywołać zdarzenie zaraz po tym, jak przestanę wpisywać (nie podczas wpisywania) znaków w moim polu tekstowym.
Próbowałem z:
$('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);
});
Ale ten przykład generuje limit czasu dla każdego wpisanego znaku i otrzymuję około 20 żądań AJAX, jeśli wpiszę 20 znaków.
Na tych skrzypcach pokazuję ten sam problem za pomocą prostego alertu zamiast AJAX.
Czy jest na to rozwiązanie, czy po prostu używam złego podejścia?