質問: ()=>console.log("hoge"); # ↓のようにデベロッパーツールで見るとchangeに2つ目(表示上は1番上)として追加されていることが確認できました。 ``` ### Chromeのデベロッパーツール上の表示 Elements -> 要素選択 -> Event Listeners を見るとchangeのみなんらかの関数が設定されています。(dojo.js?v1.11.2との事です)
回答: `onchange()` を呼ぶのはなぜうまくいかないか `onchange` プロパティに入っているのは、その要素の `onchange` プロパティに代入された関数か `onchange` 属性に書かれたコードだけです。その要素に `addEventListener()` で登録された関数や、先祖要素で capturing/bubbling phase で待っているリスナは `onchange` プロパティから参照できません。 対処: `change` イベントを自分で発火する。 ``` document.getElementById("hoge").value = "huga"; document.getElementById("hoge").dispatchEvent(new Event('change', {bubbles: true, composed: true})); ``` 目的のイベントリスナが `isTrusted` フラグをチェックしていなければ、これで上手くいくのではないかと思います。 `isTrusted`フラグをチェックしていたら簡単な方法はありません。コードを精査して、`isTrusted`チェック以降に書かれているコードを呼ぶしかないでしょう。