【发布时间】:2012-07-11 22:14:43
【问题描述】:
我有以下问题:
我在输入字段上有一个事件监听器。在每个 keydown 事件中,输入字段的值都应该得到验证。问题是分配给事件目标的值被延迟了:
-
您有一个空输入字段并输入一个字母:
$('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 "" }); -
你输入第二个字母
$('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