14

私が持っているページのいくつかのコメントに関連付けられている削除ボタンがあります。削除ボタンをクリックすると、コメントを削除するかどうかを確認する確認ダイアログ ボックスが表示されます。[OK] をクリックすると関数が実行され、コメントが削除されます。[キャンセル] をクリックすると、関数は実行されず、ダイアログ ボックスが閉じます。

これは私のコードです:

onclick="confirm('Are you sure that you want to delete this comment?'); commentDelete(1);"

私の問題: キャンセルをクリックすると、削除機能がまだ実行されます。私の推測では、キャンセルをクリックすると、JavaScript を進めて関数を呼び出すだけなので、関数はまだ呼び出されていると思います。どうすればこれを正しく達成できますか? これはおそらく簡単な問題だと思います。助けてくれてありがとう!

4

7 に答える 7

19
onclick="if (confirm('Are you...?')) commentDelete(1); return false"

がありませんif。あなたのバージョンでは、最初に質問を受けてから、答えに関係なく を呼び出しますcommentDelete

于 2011-04-29T17:01:12.917 に答える
3

確認を扱っているのは、それがifステートメントである場合、ブール値の true または false を返すだけです。

if(confirm('foo')){ alert('bar'); }
于 2011-04-29T17:01:34.163 に答える
2
function confirmCancel(){
   var msj='Are you sure that you want to delete this comment?';
   if (!confirm(msj)) { 
      return false;
   } else {
      window.location='backcables.php';
   }
}
于 2013-05-19T23:48:41.937 に答える
-1

おそらくtype=submit、javascript を含むフォームに を設定したことが原因です。

キャンセルをクリックした場合に送信されたくない場合は、ボタンまたは画像などに設定する必要があります

<form name="form_name">
    <input type="button" onclick="javascript_prompt()" value="GO"/>
    <input type="hidden" name="new_name" value=""/>
</form>

JavaScript プロンプトの例:

function javascript_prompt(){
    var name = prompt("Tell me your name.", "");
    if (name != "" && name != null){
        document.form_name.new_name.value = name;
        document.form_name.submit();
    }else{
        return false;
    }
}
于 2012-09-22T23:13:27.057 に答える
-1

デフォルトのイベントを防ぐには、false を返す必要があります。これはうまくいくはずです:

onclick="confirm('Are you sure that you want to delete this comment?'); commentDelete(1);return false;"
于 2011-04-29T17:00:48.410 に答える