JSをデバッグしててhiddenがどこから更新されてるのか知りたかった。
ある操作をしたら、input[type=hidden]
が書き換わるので、そのJSを特定しようと頑張ろうとした。
めっちゃめんどくさい。hidden には onchangeイベントが発火しないんですよ。
MutationObserverを使うとできるんです。
var observer = new MutationObserver(function (MutationRecords, MutationObserver) { debugger; }); observer.observe(document.querySelector("input[type='hidden]"), { childList: false, });
これで監視はできるんだけど、面倒なので input[type=hidden] を input[type=text]にして、display:none にしたほうが早い。そりゃそうだよね。ってすごく納得した。
参考資料
INPUT要素でtype属性がhiddenの要素のvalue値に変更があったらchangeイベントを発火させる - babu_babu_babooのごみ箱