我有一个带有输入字段(存储每个对象的价格)的表单,其中有不同的按键、模糊和按键事件。当用户通过选项卡浏览字段时,我的 JS 会循环遍历每个输入字段以检查它是否已较之前的值发生更改(并基于该值执行计算)。 (我尝试使用 .change 和 .keypress 事件来代替 - 不幸的是,它们被定时在 keyup 之后触发,并且需要在之前)。
我存储每个输入初始值的全局变量数组,并根据该数组检查当前值。但由于某种原因,当我循环遍历每个输入并检查其 .val() 时,结果是用户当前选择的输入被取消选择。 .attr("value") 也会发生同样的情况。我已经进行了充分的调试,知道这个特定的调用是问题所在 - 例如,替换随机数而不是调用 .val() 会使其完美工作。任何想法为什么会发生这种情况?我已经无计可施了。
最佳答案
为了清楚起见,并且不想让这个问题显得悬而未决,我也在此处重复评论部分中接受的答案:
The order of events related to the onkeydown event: onkeydown -> onkeypress -> onkeyup
答案取自w3schools.com 。使用 onkeydown 事件似乎解决了OP的困境:
(I tried using the .change and .keypress events instead - unfortunately they were timed to fire AFTER keyup, and it needs to be before)
;)
关于javascript - jQuery 在检索 .val() 时取消选择输入字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14533691/