俗に言う「いまさら聞けない~」という感じの話なのですが、実は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を操作するコードを書いている方はお気を付けください。