JavaScript подтвердить кнопку отмены, не останавливая JavaScript

У меня есть кнопка удаления, привязанная к некоторым комментариям на странице, которую у меня есть. Когда вы нажимаете кнопку "Удалить", я пытаюсь получить диалоговое окно подтверждения, чтобы спросить, уверены ли вы, что хотите удалить комментарий. Нажатие кнопки "ОК" должно запустить функцию для удаления комментария, а нажатие "Отмена" не должно запускать функцию, но просто закройте диалоговое окно.

Это мой код:

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

Моя проблема: когда я нажимаю кнопку "Отменить", функция удаления все еще работает. Я предполагаю, что функция по-прежнему вызывает вызов, потому что, когда я нажимаю кнопку "Отменить", она просто переходит в JavaScript и вызывает функцию. Как я могу выполнить это правильно? Я знаю, что это, вероятно, простая проблема. Спасибо за любую помощь!

Ответ 1

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

Вам не хватает if. В вашей версии сначала вы задаете вопрос, а затем, независимо от ответа, вы вызываете commentDelete.

Ответ 2

Вы относитесь к confirm, если это оператор if, он просто возвращает логическое значение true или false.

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

Ответ 3

в теге 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 = "Изменить" Текст = "Изменить" OnClientClick = "getConfirmation()"

Ответ 4

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

Ответ 5

Вы должны вернуть false, чтобы предотвратить событие по умолчанию. Это должно работать:

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

Ответ 6

Может быть, потому, что вы установили type=submit в форму, содержащую javascript.

Вы должны установить его на кнопку или изображение или что бы то ни было, если вы не хотите, чтобы его отправили, если щелкнуть cancel

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