【问题标题】:jQuery keydown event: Value coming delayedjQuery keydown 事件:值延迟
【发布时间】:2012-07-11 22:14:43
【问题描述】:

我有以下问题:

我在输入字段上有一个事件监听器。在每个 keydown 事件中,输入字段的值都应该得到验证。问题是分配给事件目标的值被延迟了:

  1. 您有一个空输入字段并输入一个字母:

    $('form.registration').keydown(function(e) {
    var $el = $(e.target);
    if ($el.val() == "") {
        $el.closest("div.control-group").addClass("error");
    }
    console.log($el.val()); // this logs ""
    });
    
  2. 你输入第二个字母

    $('form.registration').keydown(function(e) {
    var $el = $(e.target);
    if ($el.val() == "") {
        $el.closest("div.control-group").addClass("error");
    }
    console.log($el.val()); // this logs the first letter (for example: "a")
    });
    

如您所见,该值总是延迟一个字母。

我该如何解决这个问题?

【问题讨论】:

  • 按照 haynar 的回答使用 keyup。并考虑使用模糊或代替,因为用户可以在不使用键盘的情况下更改值。

标签: javascript jquery


【解决方案1】:

我建议你改用keyup。这将防止您的程序在用户按住键时密集运行,只有在用户释放键后才会处理内容。这种方法在很多情况下都很方便。

【讨论】:

    猜你喜欢
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 2015-01-17
    • 2010-09-30
    • 1970-01-01
    • 2013-12-31
    • 1970-01-01
    相关资源
    最近更新 更多