JavaScript подтверждает кнопку отмены, не останавливая JavaScript - PullRequest
12 голосов
/ 29 апреля 2011

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

Это мой код:

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

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

Ответы [ 7 ]

17 голосов
/ 29 апреля 2011
onclick="if (confirm('Are you...?')) commentDelete(1); return false"

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

3 голосов
/ 23 апреля 2014

в заголовке вы можете написать следующий код

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 ()" >

3 голосов
/ 29 апреля 2011

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

if(confirm('foo')){ alert('bar'); }
1 голос
/ 20 мая 2013
function confirmCancel(){
   var msj='Are you sure that you want to delete this comment?';
   if (!confirm(msj)) { 
      return false;
   } else {
      window.location='backcables.php';
   }
}
0 голосов
/ 16 ноября 2018

Пусть это кому-нибудь поможет.

var result = confirm("Are you sure");
return !!result;
0 голосов
/ 23 сентября 2012

Может быть, это потому, что вы установили 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;
    }
}
0 голосов
/ 29 апреля 2011

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

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