比較的レアな状況だと思うが2度ほど同じ過ちに出会ったので記録。
HTMLでフォームを送信する場合になぜかバリデーションが誤作動した。
原因を辿ると以下のようなコードが。
<body>
<form action="testresult.php" method="POST" name="testform">
<input type="text" name="test1">
<input type="submit" onclick="submit_form()">
</body>
<script>
function submit_form(){
document.testform.submit();
}
</script>
testresult.php
にフォームを送信したくて、そのためにinput type="submit"
としている。
その時点でフォームは送信できているが、更にJavaScriptでもsubmitする関数をonClickで呼び出してしまっている。結果的にこのフォームは二重で送信されてしまう。
これを防ぐには、input type="submit"
をinput type="button"
に変えてしまうか、JavaScriptの関数を削除する。後者の方がすっきりする。