重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

掲示板の記事を削除するとき、JavaScriptを使って確認ダイアログを
出させたいと思ってます。
しかし、確認ダイアログは出るものの、「いいえ」を押しても削除を
実行してしまって困っています。

下記の関数に分岐が足りないのはわかるのですが、
どうすれば分岐した上でcgiを叩いてくれるのかわかりません。

どうか教えてください。m(_ _)mペコリ


■JavaScript
function DEL0(){
window.confirm("削除しますか?")
}

■BODY

<form action="bbs.cgi" method="post">
   :
   :
<input class="button" name="category_delete" type="submit" value="削除する" onClick="DEL()">
   :
   :
</form>

A 回答 (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>

この回答への補足

とりあえず、onsubmitをやめてinputタグ側を「onclick="return DEL()"」
「onclic="return UPD()"」のようにしてみました。

回答、ありがとうございました。
感謝いたします。

補足日時:2005/01/07 21:54
    • good
    • 0

こんな感じでしょうか。


他にも色々方法はあると思いますが、一例ということで。

■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>

補足日時:2004/12/29 13:11
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!