二重送信を防ぐ


動作ブラウザ 【 IE:3.0  NN:3.0
Internet Explorer Netscape Navigator DreamPassport iCab
3.0x 4.0x 4.5 5.0x 5.5 2.0x 3.0x 4.0x 4.x 6.0 2 3 2.x
Windows - × - -
Macintosh - × - -
UNIX - - - - - × - - -
Dreamcast - - - - - - - - - - -

ポイント if (flag) { alert("送信済みです"); return false; } <form name="myFORM" method="POST" action="send.cgi" enctype="text/plain" onSubmit="return send()">
説  明 二重送信を防ぐためにはフラグ変数を用意し一度送信したらフラグをtrueにし二度と送信しないようにします。submitボタンが押された時にはonSubmitイベントが発生します。イベントが発生したら関数内でフラグ変数を調べて送信済みであれば警告をだし、戻り値をfalseにします。送信されていない場合は戻り値をtrueにします。onSubmitイベントでは戻り値がtrueの場合のみデータ送信を行いますので、「onSubmit="return 関数名()"」のように指定しておくことで簡単に二重送信を防ぐことができます。
サンプル <html> <head> <title>二重送信を防ぐ</title> <script Language="JavaScript"><!-- flag = false; function send() { if (flag) { alert("送信済みです"); return false; } flag = true; return true; } // --></script> </head> <body> <form name="myFORM" method="POST" action="send.cgi" enctype="text/plain" onSubmit="return send()"> <input type="text" value="test"> <input type="submit" value="送信"> </form> </body> </html>
補足説明 なし

■サンプルスクリプトを実行する >>実行
■各ブラウザでの動作結果を見る >>View!

写真素材 PIXTA