你如何得到一个变异观察者来检测textarea的值变化?

时间:2012-08-21 04:58:17

标签: javascript mutation-observers

我已经看到变异观察者在使用谷歌浏览器开发工具进行修改时用于获取doms的属性。但是,当textarea中的文本因用户输入或粘贴而发生更改时,我无法找到如何调用函数。在我的代码中,当用户键入时,即使将所有observe选项设置为true,也不会调用回调。这是什么代码?

2 个答案:

答案 0 :(得分:8)

突变观察者监听DOM的变化。但是,表单元素的当前状态不会反映在DOM中。

例如,在不设置value属性的情况下创建输入元素 input 。当文本输入到输入字段时, input.value 会反映此文本。另一方面, input.getAttribute('value')仍然返回 null

因此,变异观察者无法在形式字段的状态中观察到这种变化。

(建议的ECMAScript第6版的Object.observe也没有帮助。虽然可以在最新版本的Chrome中监听主机对象的更改,但主机对象属性的更改,如 value <没有观察到上面的em> input 。)

答案 1 :(得分:0)

请参阅此链接Textarea onchange detection。您需要编写onkeyup和onchange函数。

顺便说一句,上面的答案对输入法不起作用。我的解决方案是setInterval来检测文本是否每50毫秒更改一次。