JavaScript确认取消按钮不停止JavaScript

时间:2011-04-29 16:57:59

标签: javascript confirm dialog

我有一个删除按钮,它与我所拥有的页面上的一些评论相关联。当您单击删除按钮时,我试图获取一个确认对话框,弹出询问您是否确定要删除注释。单击确定应运行该功能以删除注释,单击取消不应运行该功能,只需关闭对话框。

这是我的代码:

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

我的问题:当我点击取消时,删除功能仍然运行。我的猜测是该函数仍然被调用,因为当我点击取消它只是在JavaScript中前进并调用该函数。我怎样才能正确完成这个?我知道这可能是一个简单的问题。谢谢你的帮助!

7 个答案:

答案 0 :(得分:17)

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

您错过了if。在您的版本中,首先您会收到一个问题,然后无论答案如何,都可以致电commentDelete

答案 1 :(得分:3)

您正在对confirm进行处理,如果它是if语句,则只返回布尔值true或false。

if(confirm('foo')){ alert('bar'); }

答案 2 :(得分:3)

您可以在头标记中

编写以下代码

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 =&#34;编辑&#34;文本=&#34;编辑&#34;的的OnClientClick =&#34; getConfirmation()&#34; &GT;

答案 3 :(得分:1)

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

答案 4 :(得分:0)

您应该返回false以防止默认事件。 这应该有效:

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

答案 5 :(得分:0)

这可以帮助某人。

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

答案 6 :(得分:-1)

也许是因为您在包含javascript的表单中设置了type=submit

您应该将其设置为按钮或图片,或者如果您不想提交,则点击取消

<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;
    }
}