OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

confirmのOK・キャンセルを押した後の操作制御

  • 困ってます
  • 質問No.152935
  • 閲覧数5213
  • ありがとう数10
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 76% (55/72)

いつもお世話になっています。

<script language="JavaScript">
<!--
function startConfirm(){
confirm("本当によろしいですか?");
}
// -->
</script>
</head>

(中略)

<form action="next.asp" target="_top" name="me">
<td>
<input TYPE="submit" value="全削除" name="all_del" onclick="startConfirm()">
</td>
</form>

と、このようなボタンを押したときに確認メッセージを表示させています。
キャンセルを押した場合にnext.aspに遷移せず、自分の画面に戻る
または他の画面に遷移させたいのです。

startConfirm()の中に処理を書けば良いのでしょうが、哀しいかな、わかりません(涙)。
やり方をご存知の方、教えてください。

alertでOKを押された時の処理を任意に行う方法も教えていただけたら嬉しいです。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル10

ベストアンサー率 50% (72/143)

こんにちはさん、xruzです。
submitボタンにこだわらずscriptでsubmit()すれば柔軟に対応できますよ。
こんな感じではいけませんか?

<html>
<head>
<title>submit</title>
</head>
<script language="javascript">
<!--
function frmSubmit() {
var errFlag=true;
// チェックとか処理とかをします
if(errFlag==false) {
// alert("Err"); // エラー処理かな
return;
}
if(confirm("Send Ok?")) {
// document.frm.target="main"; // 表示先の変更
// document.frm.action="hoge.asp"; // リンク先の変更
document.frm.submit();
} else {
// this.location.href="jump.cgi"; // キャンセルした場合のリンク先?
}
}
//-->
</script>
<body>

<form method="post" action="" name="frm" target="_self">

<input type="button" value="send" onclick="frmSubmit();">
</form>

</body>
</html>

がんばってくださいね。
お礼コメント
lovelypooh

お礼率 76% (55/72)

本当に丁寧な回答、ありがとうございます。
お礼が大変遅くなってすみませんでした・・・。

貼り付けたら見事に動きました(当たり前だ)。感動です。
コメントもつけて頂いていたので、どこに何を書いたらどう動くのかすぐわかり、
これまた大変ありがたかったです。

このコメント付きのソースを色々加工させて頂いて、
さらにややこしいエラー処理などに挑戦したいと思います。

また機会がありましたら、教えてやって下さい(ペコリ)。
投稿日時 - 2001-10-19 18:11:13
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル11

ベストアンサー率 42% (103/245)

confirmはOKボタンが押された時にtrue、キャンセルボタンが押された時にfalseが返ってきます。 これを利用して フォームタグを <form action="next.asp" target="_top" name="me" onSubmit="return startConfirm()"> スク ...続きを読む
confirmはOKボタンが押された時にtrue、キャンセルボタンが押された時にfalseが返ってきます。
これを利用して
フォームタグを
<form action="next.asp" target="_top" name="me" onSubmit="return startConfirm()">
スクリプトを
function startConfirm(){
return (confirm("本当によろしいですか?"));
}
という風にすれば、押されたボタンの結果が返り、OKならnext.aspが呼び出されるという感じになります。

alertは、フォームの記述が上と同じだった場合、
表示した後にtrueを返すとnext.aspを実行、
falseを返すとそのまま何も実行しない。
というどうさになります。
お礼コメント
lovelypooh

お礼率 76% (55/72)

早速の回答、ありがとうございました。
返事が遅くなってすみません・・・。

貼り付けるだけでできました。
丁寧かつ親切な回答で助かりました。

また機会があったら教えてやって下さい(ペコリ)。
投稿日時 - 2001-10-19 17:51:49


  • 回答No.2

まず、confirm()の使い方ですが戻り値を使います if(confirm("いいですか~")==true){  // OK ボタンが押されたときの処理 }else{  //キャンセルボタン が押されたときの処理 } 次に、画面遷移についてですが、 >input TYPE="submit" value="全削除&quo ...続きを読む
まず、confirm()の使い方ですが戻り値を使います

if(confirm("いいですか~")==true){
 // OK ボタンが押されたときの処理
}else{
 //キャンセルボタン が押されたときの処理
}


次に、画面遷移についてですが、

>input TYPE="submit" value="全削除" name="all_del" onclick="startConfirm()">

の意味は「全削除」ボタンを押したら、(確認してOKだったら)フォームの内容を送信するということでしょうか?

だとすると、FORMタグのonSubmitイベントハンドラに書くのが一般的です

<FORM NAME="formmname" ACTION="送信先" onSubmit="return startConfirm()">
<INPUT TYPE="submit" VALUE="全削除">
</FORM>

…ここまで書いてたら、下記にずばりな回答がありましたので、これは補足で見て下さい。
お礼コメント
lovelypooh

お礼率 76% (55/72)

早速の回答、ありがとうございます。
なのにお礼が遅くなってすみません・・・。

画面遷移の
<input TYPE="submit" value="全削除" name="all_del" onclick="startConfirm()">
の意味もkana-tanさんの想像通りです。

今までsubmitボタンの中にonClickで書くとばかり思ってました。
onSubmitで書くのは、enterキーを押した時でも動作できるようにするためなのでしょうか?

あと、補足だなんてとんでもないです。
キャンセルボタンが押された時の処理を行う方法を書いて頂いてありがたかったです。
かなり利用できる発想を頂きました。

また機会がありましたら、よろしくお願いします(ペコリ)。
投稿日時 - 2001-10-19 17:59:14
このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ