如果您输入两个字符 – 例如数字“12” - 快速进入输入字段并在每个 keyup 事件中记录 val(),我们得到两个 keyup 事件,但 val()
是 12
(在我的例子)两次。
$(".myInput").keyup(function(e){
console.log("val() = " + $(this).val());
});
输入“12”时的预期输出:
val() = 1
val() = 12
输入“12”时观察到的输出:
val() = 12
val() = 12
<强> Fiddle HERE 。
更新 val()
时是否存在内置延迟?这感觉像是一个错误,但我在 Chrome、Safari 和 Firefox 上看到了相同的行为。
最佳答案
这是因为您在 1
的 keyup
事件触发之前按下了 2
。在您松开按键之前它不会触发,但您可以在松开第一个字符之前键入下一个字符。由于输入框在 keyup
事件触发之前包含 12
,因此这就是 val()
在这两个事件上向您报告的内容。
关于javascript - keyup 事件中的输入 val() 被延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35064857/