JavaScriptでsubmit時に「document.form.submit is not a function」を回避する方法

久しぶりの技術関連の投稿です。元々は技術者ですので、このブログでは技術的なことも書いていこうと思っています。

JavaScriptでsubmitするとdocument.form.submit is not a function等のエラーメッセージが表示される場合があります。これは、<input type=”submit” name=”submit” value=”送信” />のように、「name=”submit”」が含まれている場合に起こるエラーです。したがって、<input type=”submit” name=”post” value=”送信” />のようにsubmitボタンの名前を変更すればエラーメッセージは表示されません。

多くのブログでこの回避方法は取り上げられているのですが、name=”submit”を変更できない場合があります。その際に、どうやってJavaScriptでページロード時にsubmitしようかずっと悩んでいました。

回避方法としては以下のようになります。

<script type=”text/javascript”>
<!–
window.onload = function(){
document.forms[“f”].elements[“submit”].click();
};
// –>
</script>

<form name=”f” action=”posturl” method=”post”>
<input type=”hidden” name=”text1″ value=”テキスト1″ />
<input type=”hidden” name=”text2″ value=”テキスト2″ />
<input type=”submit” name=”submit” value=”送信” />
</form>

これでname=”submit”のままJavaScriptでsubmitすることが可能です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください