search

Home  >  Q&A  >  body text

javascript - JS如何判断用户连续输入完?

比如一个input输入框,在用户连续输入完之后才触发返回当前输入值,输入过程中不触发。

天蓬老师天蓬老师2820 days ago1398

reply all(16)I'll reply

  • 怪我咯

    怪我咯2017-04-10 15:58:05

    两种方式,判断用户输入停顿多长时间后才触发;用户每次按下键盘时带入当前时间与方法体内已获取的时间做比对,超过某一间隔及触发,如150毫秒。
    这两种都是在一个定时器循环里做

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-10 15:58:05

    //失去焦点时触发
    $("input").blur(function(){
      $("input").css("background-color","#D6D6FF");
    });

    reply
    0
  • 阿神

    阿神2017-04-10 15:58:05

    使用间隔时间 和 离开焦点

    reply
    0
  • 黄舟

    黄舟2017-04-10 15:58:05

    keyup的时候,在回调函数内用setTimeout生成一个事件队列,你的返回在这setTimeout函数中执行,如果用户连续输入时在keyup监听时候清除掉该队列。
    var queue;

    input.on('keyup', function (e) {

    clearTimeout(queue);
    queue = setTimeout(function () {//这里返回}, 1000);

    });

    输入过程我认为就是一段时间内没有停顿。。

    reply
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 15:58:05

    我用propertychange,即时监听input输入框内的任何改变:
    $("#inputId").bind('input propertychange',function(){
    //...
    })
    虽然有资料说onpropertychange事件是IE专有,但用最新的firefox40.0+,chrome45.0+实测都是可行的

    reply
    0
  • ringa_lee

    ringa_lee2017-04-10 15:58:05

    其实有方法的,就像微博发布框:给textarea加focus后,然后给body加一个属性

    reply
    0
  • Cancelreply