我在HTML页面上有一个输入,其中一个人会输入内容,而我想要的是每次停止输入时都要调用的功能。我知道onkeypress事件,但每次输入一个字符时都会调用它。这是我想要的一个例子:
这可能吗?
非常感谢!
答案 0 :(得分:10)
收听onkeyupevent。开始超时(您必须将“停止”定义为一些时间量,否则将在每个键盘上调用),并在超时时执行您的功能。
如果在计时器运行时调用onkeydown,请将其停止。
像...一样的东西。
var timer;
function onKeyUpHandler(e){
timer = setTimeout("foo()", 500)
}
function onKeyDownHandler(e) {
clearTimeout(timer);
}
此代码的完整外观取决于您使用它的位置和方式......只是为了说明这样做的方法。
答案 1 :(得分:0)
只需设置一个javascript计时器即可在onKeyPress上启动/重启。然后定义定义“停止输入”并运行脚本的时间长度。
答案 2 :(得分:0)
首先,捕获“key up”事件,并将“stoppedTyping”变量设置为true。然后设置一个计时器(在考虑这个“停止输入”事件之前你想等多久)。
如果在计时器关闭之前,您捕获“按键”事件,请设置“stoppedTyping = false”
当计时器到期时,您的计时器回调可以检查“stoppedTyping”的值。如果这是真的,那么用户已经停止输入(或者更确切地说,在计时器的持续时间内没有输入任何新的字符)。如果它是假的,那么他们还没有停止输入 - 他们必须在你的计时器运行时输入至少一个字符。
答案 3 :(得分:0)
如果我理解得很好,“停止输入”意味着“在一定时间内没有按键”。 在这种情况下,您必须使用计时器:http://jsfiddle.net/xnghR/1/