javascript - 跟踪/观察文本框值已更改

标签 javascript jquery

有什么方法可以检测文本框的值是否已更改,是用户明确更改还是某些 java 脚本代码修改了文本框?我需要检测这种变化。

最佳答案

要跟踪用户更改,您可以添加按键处理程序:

$(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 进行测试,并且能够检测到更改)。

我发布了一个 example在 jsFiddle 中。使用这个新的 watch 插件,您不再需要 keypresschange:它可以用于按键输入、复制/粘贴、JavaScript 等。

关于javascript - 跟踪/观察文本框值已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9108878/

相关文章:

javascript - 将 Parse.com 对象转换为字符串

javascript - 使用来自 API 的 JSON 填充数据表

javascript - 单击底部并返回原始位置时动画 div

jquery - 脑放 : How to make overflow content in a div

javascript - 单词搜索游戏。如何搜索网格并突出显示结果?

javascript - react-native 0.47 导航器已弃用,但我不使用它

jquery - 可以在透明背景 PNG 图像上创建 css 阴影吗?

Javascript、jquery、backbone、splunk : on ("change", {data}、处理程序)导致 TypeError

javascript - 单击按钮时想要在 saveInfo() 函数内执行 disNone() 函数

javascript - setTimeout 无法正常工作