TypeError: e[h] is not a function.はなぜ起きたのか
またform周りの仕様に苦しめられた。
submitのイベントの前にhiddenで渡す値を変更したくてsubmitボタンをクリックしたときにそれを行おうとしていたのだが、
「それだとブラウザの仕様でelementが書き換わる前にsubmitが行われる可能性があるかもしれない」
と言われた(一応手元のブラウザで確認したけどそういうことはなかった。けど念のため対策はしないといけない)ので、buttonエレメントのclickイベントで発火するようにした。
そこでデザイナーさんに「ちょっとinput type="button"にしてくれませんか」といわれたのでそっちでやってみたら
TypeError: e[h] is not a function
が起きた。なんじゃこりゃ
ということでググったら案の定stackoverflowにあった
javascript - TypeError: e[h] is not a function - Stack Overflow
英語力のなさに定評のある俺ががんばって訳してみると
お前どれかのinputエレメントにidとかnameにsubmitってやつがないか?あったらそれを消したら治るよ。
どうやらinputエレメント中にそれがあると自動的にHTMLInputElementのsubmitプロパティがセットされるみたいでな。それでHTMLFormElementの方にはsubmitがないって言われたみたい
ということらしい。調べてみたらあった。んで直したら動いた。
こういう細かい仕様はよくわからんな…