悔しいことにハマったので、メモ。
次のような感じで、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