javascriptでsubmitできない?

悔しいことにハマったので、メモ。

次のような感じで、javascriptでformをサブミットしようとしたら、エラーになってしまう。

<form name="addForm" action="/add" method="post">
<input type="button" name="submit" onclick="document.forms[0].submit()" value="送信" />
</form>

理由を聞いてみると、

document.forms[0].submit is not a function

関数じゃないって、そんなわけあるかい。javascriptの不審な動きに、仕方なくひとつひとつ探っていって、やっと分かりましたよ。formタグのなかに、「submit」という名前の要素を置くと、そっちを参照しちゃうみたい。ここでは、ボタンの名前に「submit」なんて付けているからダメだと。

言われてみれば、確かにそれはそれで正しい気がする。でも、まあ、もう少し優しい言葉を返してくれても良いんじゃないだろうか。同じ理由で、例えば、action や target という名前も、避けないといけないってことだよね。

回避策もありそうな気はするんだけどなあ。見つけたらエントリしまっす。

このエントリーのトラックバックURL
http://www.deftrash.com/admin/mt4/mt-tb.cgi/466