Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 隐藏输入更改时触发onchange事件_Javascript - Fatal编程技术网

Javascript 隐藏输入更改时触发onchange事件

Javascript 隐藏输入更改时触发onchange事件,javascript,Javascript,我有各种输入,我想设置一个脏标志 但是,如果这些输入由javascript修改,则不会触发onchange事件。 许多输入是由许多其他人编写的定制数据输入模块,具有隐藏输入和javascript UI层来修改隐藏输入 我想检测这些隐藏的输入何时改变。(不修改原作者的脚本) 另外,正常输入在“模糊”之前不会触发“onchange”事件,但我可以通过onkeyup事件来解决这个问题。编辑:“签出”domtrrmodified事件 只是一个想法,因为您不想修改原始作者脚本 你能监控一下那些区域吗 /*

我有各种输入,我想设置一个脏标志

但是,如果这些输入由javascript修改,则不会触发onchange事件。
许多输入是由许多其他人编写的定制数据输入模块,具有隐藏输入和javascript UI层来修改隐藏输入

我想检测这些隐藏的输入何时改变。(不修改原作者的脚本)
另外,正常输入在“模糊”之前不会触发“onchange”事件,但我可以通过onkeyup事件来解决这个问题。

编辑:“签出”domtrrmodified事件

只是一个想法,因为您不想修改原始作者脚本

你能监控一下那些区域吗

/*
Very simple monitor utility.

Monitor what?
This monitors any dom element which has a "value" attribute.

This was created to monitor hidden fields that were altered via javascript.

Fields that had values changed via javascript did not trigger the "change" event.
This is a solution to that problem.


Usage:

Monitor.monitor('element_id',(function) callback);

Monitor.demonitor('element_id');


*/


var Monitor = (function(){
    var inputs = [];
    return {
        monitor:function(input_id,callback){
            var previous_value = "";
            function go (){
                current_value = document.getElementById(input_id).value;
                if(previous_value !== current_value){
                    callback();
                }
                previous_value = document.getElementById(input_id).value;
            }
            inputs[input_id] = setInterval(go,200);
        },

        demonitor:function(input_id){
            clearInterval(inputs[input_id]);
        }


    }
})();

我知道这是一个老问题,但我有同样的问题,我在这里找到了答案:

你需要针对哪个浏览器?IE 8+…尽可能多…但我想如果它只在IE中工作,它仍然值得去做。Wut?它每200毫秒循环DOM元素以检查任何变异。这不是最好或最优雅的方式。