是否有可能将事件处理程序绑定到将被触发的输入字段,只要值没有被聚焦,值就会被更改?
谢谢。
答案 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机制。