0

观察表单上的字段并报告更改

我现在编写了一个简单的实用程序(观察者模式的一部分)来观察表单每个字段中所做的更改。

var idInt = setInterval(function() {
  // each input is a document.getElementById(id)
  var len = inputList.lenght;

  while(len--) {
    //send value to somewhere
    someWhere(ininputList[len].value);
  }
}, 40)

但我有这样的问题:

  1. 用鼠标更改值时(剪切/粘贴)
  2. 当以编程方式更改值时

someWhere(ininputList[len].value);即使我尝试将事件(onchange、oncut、onpaste、oninput、onkeyup)添加到元素以避免 setIntervalloop 但当我尝试以编程方式更改值时不会触发这些事件,该值也不会刷新。

这将是观察元素值变化的更好方法(输入 [按钮 | 文本 | 密码 | url | 电子邮件],单选,复选框,选择)考虑到程序化更改监视和通过界面用户进行的更改,

注意:我正在寻找原始解决方案,没有 jquery、原型、js 类或任何框架,只有原生 javascript

4

1 回答 1

0

我不确定是什么问题,因为下面的代码有效

setInterval(function() {
  var inputList = document.getElementsByTagName('input')
  var len = inputList.length;

  while(len--) {
    console.log(inputList[len].value);
  }
}, 4000)​

它每 4 秒打印一次更改的值,您可以在此处查看它的运行情况http://jsfiddle.net/QKqzT/

于 2012-05-10T17:46:47.330 回答