入力テキストボックスへの文字の入力を(入力中ではなく)停止した直後にイベントをトリガーしたい。
私は試しました:
$('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文字を入力すると約20のAJAXリクエストが発生します。
このフィドルでは、AJAXの代わりに単純なアラートを使用して同じ問題を示します。
これに対する解決策はありますか、それとも私はこれに悪いアプローチを使用していますか?