0

我有以下问题:

我在输入字段上有一个事件监听器。在每个 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")
    });
    

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

我怎样才能解决这个问题?

4

1 回答 1

2

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

于 2012-07-12T07:44:16.730 回答