【发布时间】:2012-02-02 08:00:45
【问题描述】:
有什么方法可以检测到文本框的值发生了变化,无论是用户显式更改还是某些 java 脚本代码修改了文本框?我需要检测这种变化。
【问题讨论】:
-
@GhyathSerhal,如果值从 javascript 更改,我还需要检测该值。
标签: javascript jquery
有什么方法可以检测到文本框的值发生了变化,无论是用户显式更改还是某些 java 脚本代码修改了文本框?我需要检测这种变化。
【问题讨论】:
标签: javascript jquery
要跟踪用户更改,您可以添加按键处理程序:
$(selector).keypress(function() {
// your code
});
更新:除了注意按键,
您可以使用 。它不会立即用于用户更改(仅在输入失去焦点后调用),但与 change 函数通过 JavaScript 观察变化keypress 一起,我相信您涵盖了所有情况:
$(selector).change(function() {
// the same code
});
setTimeout(function() { $(selector).val("changed"); }, 2000); // Will trigger the change
编辑:抱歉,它似乎也适用于 JavaScript,但我弄错了...This question,但是,将能够解决您的问题(使用 setTimeout 测试,它能够检测到更改)。
我在 jsFiddle 中发布了 example。有了这个新的watch 插件,您不再需要keypress 或change:它可以用于键入、复制/粘贴、JavaScript 等。
【讨论】:
keypress 和 change 的组合适用于所有用户场景 - 键入、剪切/粘贴、拖放 - 但不适用于 JavaScript)。这个,或者修改你的脚本,所以它们都不会在不调用你的代码的情况下更改输入字段......