火灾变化事件虽然没有集中

时间:2014-10-14 08:51:16

标签: javascript

是否有可能将事件处理程序绑定到将被触发的输入字段,只要值没有被聚焦,值就会被更改?

谢谢。

2 个答案:

答案 0 :(得分:0)

来自Jquery official documentation

  

更改事件在其值更改时发送到元素。此事件仅限于元素,框和元素。

所以你可以在Jquery中轻松做到这样的事情:

$( "#bar" ).change(function() {
   alert( "Handler for .change() called." );
});

您在纯JavaScript中没有这样的功能。在这种情况下,您可以简单地定义一个检查input值的函数,并使用setInterval方法定期执行此操作(来自relvant SO Post):

  var foo = document.getElementById("bar");
  var oldValue = foo.value;

  function checkIfValueChanged() {
    if(foo.value != oldValue) {
       //necessary code trigerred on value change
       clearInterval(checker);
  }
  }

 //every 500ms check if value changed
 var checker = setInterval('checkIfValueChanged()', 500);

我希望这能让你开始朝着正确的方向前进。

答案 1 :(得分:0)

是的,但是没有本地事件处理程序。 更改事件处理程序在字段中的值失去焦点值已更改(我认为)时有效。

正如Vivek指出的那样,你需要的是一些代码,当表单元素中包含的值发生变化时会触发这些代码。

如果通过除用户交互之外的其他方式进行更改,那么您可能需要考虑查看触发器而不是尝试编写各种事件处理程序,请考虑观察填充表单的值字段而不是表单字段本身,通过简单的pub / sub机制。