我有各種輸入,我想設置一個髒標誌。隱藏輸入變化時發生火onchange事件
但是,如果這些輸入被javascript修改,onchange事件不會觸發。
許多輸入是由許多其他人編寫的自定義數據輸入模塊,並具有隱藏輸入和javascript UI層來修改隱藏輸入。
我想檢測這些隱藏的輸入何時改變。 (沒有修改原作者的腳本)
也正常的輸入不會觸發'onchange'事件,直到'模糊',但我可以用onkeyup事件繞過這個。
我有各種輸入,我想設置一個髒標誌。隱藏輸入變化時發生火onchange事件
但是,如果這些輸入被javascript修改,onchange事件不會觸發。
許多輸入是由許多其他人編寫的自定義數據輸入模塊,並具有隱藏輸入和javascript UI層來修改隱藏輸入。
我想檢測這些隱藏的輸入何時改變。 (沒有修改原作者的腳本)
也正常的輸入不會觸發'onchange'事件,直到'模糊',但我可以用onkeyup事件繞過這個。
編輯:「退房‘domattrmodified’事件
只是一個想法,因爲你不希望修改原始作者腳本
難道你也許監視這些領域
?/*
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]);
}
}
})();
Wut?它每200ms循環DOM元素以檢查是否有任何突變。不是最好的或最優雅的方式。 – Achshar
我知道這是一個老問題,但我有同樣的一個,我在這裏找到答案:What event can be captured when an HTML hidden input value is set/changed
您需要定位哪些瀏覽器? –
IE 8 + ...儘可能多...但我猜如果它只能在IE中工作,它仍然值得去做。 – Myster