web-dev-qa-db-ja.com

JavaScript確認キャンセルボタンがJavaScriptを停止しない

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

これは私のコードです:

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

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

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

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

17
Amadan

headタグに次のコードを記述できます

function getConfirmation()
{
    var retVal = confirm("Do you want to continue ?");
    if (retVal == true)
    {
        alert("User wants to continue!");
        return true;
    } 
    else
    {
        alert("User does not want to continue!");
        return false;
    }
}

**

このコードを記述した後、次のコードでこの関数を呼び出すことができます

 <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"

CommandName = "Edit" Text = "Edit" OnClientClick = "getConfirmation()">

4
djyJK

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

if(confirm('foo')){ alert('bar'); }
3
epascarello
function confirmCancel(){
   var msj='Are you sure that you want to delete this comment?';
   if (!confirm(msj)) { 
      return false;
   } else {
      window.location='backcables.php';
   }
}
1
FRECIA

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

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

これは誰かを助けるかもしれません。

var result = confirm("Are you sure");
return !!result;
0
vikas0713