- ベストアンサー
confirmの分岐について
- JavaScriptを使用して掲示板の記事を削除する際に、確認ダイアログを表示させたいが、「いいえ」を押しても削除が実行されてしまう問題が発生しています。
- 今回の問題は、JavaScriptの関数内に分岐が足りていないことが原因です。
- 分岐を追加してcgiを呼び出せるようにする方法について、教えていただけると幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
良い方法といえるかどうかは自信ないですが、次のような形で分岐できると思います。 <html> <head> <script language="JavaScript"> var intMode; //どちらのボタンが押されたかの判定用 1:削除 2:更新 function KAKUNIN(){ if (intMode == 1) { return confirm("削除しますか?"); } else if (intMode == 2) { return confirm("更新しますか?"); } } </script> </head> <body> <form action="bbs.cgi" method="post" onsubmit="return KAKUNIN();"> : : <input class="button" name="category_delete" type="submit" value="削除する" onclick="intMode=1"> <input class="button" name="koushin" type="submit" value="更新する" onclick="intMode=2"> : : </form> </body> </html> ----------------------- JavaScriptが必ず使用可能な状態で使われるのであれば、 submitボタンをtype="button"に変更し、スクリプト上からsubmitを実行する方法の方がスッキリとするかもしれません。 <html> <head> <script language="JavaScript"> function DEL(){ if (!confirm("削除しますか?")) { return; } document.forms[0].mode.value = 1; //削除 document.forms[0].submit(); } function UPD(){ if (!confirm("更新しますか?")) { return; } document.forms[0].mode.value = 2; //更新 document.forms[0].submit(); } </script> </head> <body> <form action="bbs.cgi" method="post"> : : <input class="button" type="button" value="削除する" onclick="DEL();"> <input class="button" type="button" value="更新する" onclick="UPD();"> <input type="hidden" name="mode"><!--CGIで、どちらのボタンが押されたかを判定するため用--> : : </form> </body> </html>
その他の回答 (1)
- sawagani
- ベストアンサー率73% (19/26)
こんな感じでしょうか。 他にも色々方法はあると思いますが、一例ということで。 ■JavaScript function DEL(){ return window.confirm("削除しますか?"); } ■BODY <form action="bbs.cgi" method="post" onsubmit="return DEL();"> : : <input class="button" name="category_delete" type="submit" value="削除する"> : : </form> ※confirmは、「OK」を選択するとtrue、「キャンセル」を選択するとfalseが返されます。 ※onsubmitに対し、falseをセットするとサブミットがキャンセルされます。
補足
回答有難うございました。 早速試してみると、ボタン1個の時は問題なく動きました。 実は、ボタンは削除ボタンだけでなく、更新ボタンというのもつけています。 このときも、同じように確認ダイアログを出したいと考えていますが、その方法も教えていただけると助かります。 情報を小出しにして申し訳ありません。 何卒宜しくお願いします。m(_ _)mペコリ ■BODY <form action="bbs.cgi" method="post" onsubmit="return DEL();"> : : <input class="button" name="category_delete" type="submit" value="削除する"> <input class="button" name="koushin" type="submit" value="更新する"> : : </form>
補足
とりあえず、onsubmitをやめてinputタグ側を「onclick="return DEL()"」 「onclic="return UPD()"」のようにしてみました。 回答、ありがとうございました。 感謝いたします。