【javascript】同ページ内に’submit’という名前が付く要素があるとform要素.submit()が呼べなくなる件

俗に言う「いまさら聞けない~」という感じの話なのですが、実はHTMLのなんでもなさそうな書き方が、javascriptの動作に影響を及ぼしてしまう例があることをご存知でしょうか。

その内の一つとして紹介するのが、id属性やname属性に”submit”という名前が使われていると、javascriptから”submit()”がたたけなくなる現象です。

先日、ひとから”javascriptでsubmitする処理を書いたのに動作しない”と相談され、細かく書き方や返り値などを確認したのですが、何度見直しても書き方があっているにも拘わらず、

document."formの要素".submit();

が動作しないという状況に陥ってしまいました。

これは解らん…と調べたところ、こちらのページを発見。

submit is a not function って言われた – LIG

どうも、同ページ内に”submit”と名前のつく要素があると、”formの要素.submit()”メソッドが上書きされてしまうようなのです。マジカヨ…

早速、要素内にある”submit”が入っている部分を全部違う文字列に変えてもらったところ、ちゃんとjavascriptからのformの送信が動作するようになったのでした…

ということで、javascriptでformを操作するコードを書いている方はお気を付けください。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG