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

Javascript 观察表单上的字段并报告更改,javascript,observer-pattern,Javascript,Observer Pattern,观察表单上的字段并报告更改 我现在已经编写了一个简单的实用程序(observer模式的一部分),用于观察表单的每个字段中所做的更改 var idInt = setInterval(function() { // each input is a document.getElementById(id) var len = inputList.lenght; while(len--) { //send value to somewhere someWhere(ininpu

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

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

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)
但我有如下问题:

  • 使用鼠标更改值时(剪切/粘贴)
  • 当以编程方式更改值时
  • 某处获取的值(ininputList[len].value)不刷新即使我尝试向元素添加事件(onchange、oncut、onpaste、oninput、onkeyup)以避免setIntervalloop,但当我尝试以编程方式更改事件时,不会触发值

    哪种方法是观察数值变化的更好方法​​元素(输入[button | text | password | url | email]、单选、复选框、选择),考虑到编程更改监控器和通过用户界面进行的更改


    注意:我正在寻找一个原始的解决方案,没有jquery、prototype、js类或任何框架,只有原生javascript,我不确定问题出在哪里,因为下面的代码可以工作

    setInterval(function() {
      var inputList = document.getElementsByTagName('input')
      var len = inputList.length;
    
      while(len--) {
        console.log(inputList[len].value);
      }
    }, 4000)​
    

    它每4秒打印一次更改的值,您可以在此处看到它的作用

    为什么不能绑定到
    change
    事件?--<代码>输入。addEventListener('change',myFunction,false)
    ?我需要实时更改,而不是在用户更改字段时。在程序中进行更改时也需要触发字段。因此,您是说,即使您更改了输入中的值,您定期调用的函数也会看到旧值?不,我需要新值。我做了一个实现,其中我有一个模型,报告了几个元素(表单、parafos等),所有内容都基于观察员和一个通知模型中感兴趣元素的pubsub