javascript - keyup 事件中的输入 val() 被延迟

标签 javascript jquery keyup

如果您输入两个字符 – 例如数字“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 上看到了相同的行为。

最佳答案

这是因为您在 1keyup 事件触发之前按下了 2。在您松开按键之前它不会触发,但您可以在松开第一个字符之前键入下一个字符。由于输入框在 keyup 事件触发之前包含 12,因此这就是 val() 在这两个事件上向您报告的内容。

关于javascript - keyup 事件中的输入 val() 被延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35064857/

相关文章:

javascript - PHP变量始终为0

表中带有边框半径的 JQuery slimScroll 在 IE 8 中不起作用

javascript - 如何可靠地检查 jQuery 中的 textarea 元素是否有任何内部文本?

javascript - 关于Jquery/Javascript和NPAPI chrome问题

javascript - Key Up 无法使用 JavaScript

Javascript keyup 调用其他表值

javascript - 从 jquery-wordpress 中的选择器获取文本

javascript - 如何防止正则表达式中字符串末尾出现多余字符?

javascript - 刷新下拉菜单更改javascript

javascript - Jquery keyup 然后 next()