我有一个文本框html元素,如下所示:
<input type="text" id="emailaddress" value="Emailaddress"/>
id想要完成的是仅在触发keyup事件后2秒钟用户释放键之后才能激活的代码。
因此,例如:
用户输入他们各自的电子邮件地址,然后我们等待2秒钟以确定他们确实不再输入,然后应用验证代码。
我有一个用于选项卡键的onkeydown,效果很好,但是我正在寻找
onkeyup event and it must be fired extacly 2 seconds since the last keyup of this html element
最佳答案
您正在寻找的被称为“反跳”。这是一个简单的示例:
var debounce;
document.getElementById('emailaddress').addEventListener('keyup', function(e) {
clearTimeout( debounce );
debounce = setTimeout( function() {
console.log('I waited 2 seconds before firing after last keyup');
}, 2000);
});
<input type="text" id="emailaddress" value=""/>
仅在尝试停止操作一定时间(在本例中为2秒)后才触发代码。我同意评论者的意见,即2秒是很长的时间,通常输入的去抖动时间约为300毫秒(以我的经验)。