我正在编写一个简单的脚本来提取输入keyup事件的数据库信息.
我遇到的问题是每次用户按键时都会重复键盘事件.如何在按下最后一个按键后才能使其工作?
我想我应该在每个键盘后使用像setTimeOut()这样的函数,但我不知道怎么样......你能用一个简单的例子吗?
对不起,我的英语不好 :)
这是我想要做的:
$("input").keyup(function()
{
var timer=setTimeout(function() {
}, 1000);
if(!timer)
{
//do .post ajax request
}
});
Run Code Online (Sandbox Code Playgroud)
ade*_*neo 41
var timer;
$("input").on('keyup', function() {
clearTimeout(timer); //clear any running timeout on key up
timer = setTimeout(function() { //then give it a second to see if the user is finished
//do .post ajax request //then do the ajax call
}, 1000);
});
Run Code Online (Sandbox Code Playgroud)
小智 7
你基本上就在那里.如果他们输入另一个字母,您只需要清除计时器; 否则,你的回调将在1000毫秒后执行,无论他们是否继续输入.
这样的事情应该有效:
$("input").keyup(function (event)
{
var self = this;
if (self.timer)
clearTimeout(self.timer);
self.timer = setTimeout(function ()
{
self.timer = null;
alert(self.value);
}, 1000);
});
Run Code Online (Sandbox Code Playgroud)
我只是有警报,你会把你的ajax代码写回服务器.