• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:「戻る」ボタン使用時のフォーム内容クリアについて)

戻るボタン使用時のフォーム内容クリアについて

このQ&Aのポイント
  • 簡易メール問い合わせフォームを作成しています。問い合わせ内容を記述後、submitしたら、CGIでメールを送信し、別のページへ飛ばしています。
  • 送信完了ページから、元の問い合わせページへ「戻る」ボタン等を使用して戻った場合、input内に記述されたテキストがそのまま残っています。
  • 戻るを押したときにフォームがクリアされていれば良いです。どうかよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

ちょっと質問者の意図とは(別画面にしているので)違いますが、 このようにしてみたらどうでしょう。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS"> <title>送信後のフォームのクリア</title> <script type="text/javascript"><!-- var time_id=0; function clear(){ document.FORM1.reset(); clearTimeout(time_id); } //--> </script> </head> <body > <form name="FORM1" method="POST" action="mail.cgi" target="_blank" onsubmit="time_id=setTimeout('clear()',10);"> <input type="text" name="address" value=""> <input type="submit" value="送信"> </form> </body> </html>

mhiro_december
質問者

お礼

試してみましたが、ダメでした。 submitする前に、フォーム内容をクリアしているようですが、うまくいきません。 onsubmitの前に、actionを実行しているようです(?) ありがとうございます。

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

#2>試してみましたが、ダメでした。 ウチでIE6, Firefox1.5 で試してみたところでは、クリアできるようなんですが。 #2>onsubmitの前に、actionを実行しているようです(?) onsubmit の前にaction を実行すると言うことはありません。 する前にイベントが起こって実行されるので、(でないとイベントから送信をキャンセルできないことになるので) clear() をclearForm() にしてみるとか setTimeout('clear()',500); にしてみる(数字を大きくする)とか試して貰えますか? #2の要点は、送信完了の画面を別ウィンドウで表示する そして、元のウィンドウのフォームを時間を置いてクリアするというものです。

noname#19175
noname#19175
回答No.3

送信完了画面でブラウザの再読込ボタンを押すと、再送信するわけですが、、、 それはいいのでしょうか?

mhiro_december
質問者

補足

送信完了画面は、別URLになっています。 再読み込みしても、再送信はしないようになっています。 問題は、そのHTMLから、元のフォームを含むHTMLへ戻った際のフォーム内容のクリアです。

  • salf
  • ベストアンサー率42% (27/64)
回答No.1

メール内容入力とメール送信の間にメール内容確認画面を入れて、 メール内容入力からメール内容確認への値の受け渡しを Session で行います。そして、メール送信完了画面にて Session の値をクリアします。 このような処理にすれば、メール内容確認画面の最初で Session 値をチェックすれば 連続投稿も不正アクセスも禁止することができます。 でもこの方法は簡単ではないですね...orz

関連するQ&A