• ベストアンサー

JavaScriptのFormについてだと思うのですが

私は、仕事上初めてJavaScriptに触れて戸惑っております。 それは、おそらくJavaScriptの記述上の問題だとは思うのですがよくわかりません。確認のダイアログボックスで、保存とキャンセルのボタンを表示させて、「保存」ならそのままデータベースにデータを落として、「キャンセル」なら、データを落とさないという手順でプログラミングしたいのですが、「キャンセル」を選んでも、データがデータベースに落ちてしまいます。どなたかよろしくお願いします。 今、テストでは有りますが、以下のようにプログラミングしています。 <html> <head> <title>test</title> <SCRIPT LANGUAGE="JavaScript"> <!--JavaScript function myEnter(){ myRet = confirm("データを保存してもよろしいですか?"); if (myRet == true) alert("保存されました"); else alert("再確認してください"); } // --> </script> </head> <body> <form action="insert.cfm" method="post"> testname:<input type="text" name="testname"> <br> testday:<input type="text" name="testday"> <br> <input type="submit" value="保存" onClick="myEnter()"> <br> <input type="reset" value="reset"> </form> </body> </html> ちなみに、<form action="insert.cfm">というのは、ColdFusionのファイルです。よろしくお願いします。

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

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

confirm()の結果によらず submit されてしまうから、ですかね。 まず、「保存」のボタンのタイプを "submit" ではなく "button" にして、 フォームに名前(仮に "myForm" という名前とします)をつけて、最後に 関数 myEnter() を function myEnter() {   if (confirm("データを保存してもよろしいですか?")) {     document.myForm.submit()   } else {     alert("再確認して下さい")   } } って感じにする、で、どうでしょうか?

obahiro
質問者

お礼

早速のお返事ありがとうございます。いろいろなホームページでサンプルを探してみたのですがうまくいかず困っていました。ほんとに助かりました。フォーム名をつけて、条件が真の時だけにsubmitを使い分けるために、保存ボタンをbuttonにするということですね。私なりの解釈になっているかも(^^;)しれませんが助かりました。ありがとうございます.

その他の回答 (2)

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.3

あ、inoue64 さんの方が簡単 (^^; もっと単純に、こうも書けます。 <input type="submit" value="保存" onClick="return confirm('データを保存してもよろしいですか?')">

  • inoue64
  • ベストアンサー率29% (334/1115)
回答No.1

else{ alert("再確認してください"); return false; } だと思います。

obahiro
質問者

お礼

早速のお返事ありがとうございます。プログラミングにもやはりいろいろとパターンがあるのですね。改めて勉強になりました。今、試しに教えていただいた様にしてみたら、きちんと動作してくれました。ほんとにありがとうございました。

関連するQ&A