我有一个文本框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毫秒(以我的经验)。

10-06 04:32