首页 > 根据keyup 来ajax表单来验证数据时, 如何只检查最后一次keyup, 而不是每次keyup.

根据keyup 来ajax表单来验证数据时, 如何只检查最后一次keyup, 而不是每次keyup.

我要在每次keyup事件时用ajax来验证数据. 但在验证时如果有其他keyup时间就停止当前, 执行最后一次.
我试过5秒后, 但5秒后还是执行了全部的keyup事件.

求指点.


keyup事件会进入队列,总归要执行的,你设置一个状态位,keyup之后关闭,ajax结束以后开启,不知你是不是这个意思


var timeout;
$input.on('input', function(e){
  clearTimeout(timeout);
  timeout = setTimeout(function(){
    $.post(...);
  },5000);
});

可以考虑事件节流方式,如:
你规定500毫秒以后执行ajax,那么你可以设置一个timer,如果第一次keyup和第二次keyup的时间小于500则清除timer,否则执行timer


那就不要keyup了,blur吧。

【热门文章】
【热门文章】