我有一个表单,其中包含输入字段(存储每个对象的价格),这些表单具有用于keyup,blur和keypress的不同事件。当用户选中字段时,我的JS循环遍历每个输入字段以检查它是否已从其先前的值更改(并根据该值执行计算)。 (我尝试使用.change和.keypress事件 - 不幸的是他们的时间是在关键时间之后触发,它需要在之前)。
我存储每个输入的初始值的全局变量数组,并检查当前值。但由于某种原因,当我遍历每个输入并检查其.val()时,效果是取消选择用户当前选择的输入。 .attr(“value”)也是如此。我已经充分调试,知道这个特定的调用是问题 - 例如,替换一个随机数而不是调用.val(),使它完美地工作。任何想法为什么会发生这种情况?!我的智慧结束了。
答案 0 :(得分:1)
为了清楚起见,并且不想让这个问题显得无法解答,我也在重复评论部分中接受的答案:
与onkeydown事件相关的事件顺序: onkeydown - > onkeypress - >的 的onkeyup 强>
从w3schools.com回答。使用 onkeydown 事件似乎已经解决了OP的困境:
(我尝试使用.change和.keypress事件 - 不幸的是,他们是时候在关键时刻开火,而且需要 前)
)