自上次按键以来经过2秒就可以确定动作

时间:2016-11-08 02:02:51

标签: javascript

我有一个文本框html元素,如下所示:

FORMAT(CAST(ROUND(column) AS INT), '#,0.0000')

要完成的id是只有在用户在keyup事件被触发后2秒释放密钥后才会激活的代码。

所以,例如:

用户在各自的电子邮件地址中键入,然后我们等待2秒钟以确定他们确实不再输入然后我应用我的验证码。

我对标签键有一个onkeydown,但效果很好,但我正在寻找<input type="text" id="emailaddress" value="Emailaddress"/>

1 个答案:

答案 0 :(得分:1)

您正在寻找的是'去抖'。这是一个简单的例子:

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毫秒(根据我的经验)。