Кнопка подтверждения отмены JavaScript не останавливает JavaScript

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

Это мой код:

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

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

12 голосов | спросил RyanPitts 29 PMpFri, 29 Apr 2011 20:57:58 +040057Friday 2011, 20:57:58

6 ответов


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

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

ответил Amadan 29 PMpFri, 29 Apr 2011 21:01:12 +040001Friday 2011, 21:01:12
0

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

if(confirm('foo')){ alert('bar'); }
ответил epascarello 29 PMpFri, 29 Apr 2011 21:01:34 +040001Friday 2011, 21:01:34
0

в теге 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 ()" >

ответил djyJK 23 PMpWed, 23 Apr 2014 16:51:22 +040051Wednesday 2014, 16:51:22
0
function confirmCancel(){
   var msj='Are you sure that you want to delete this comment?';
   if (!confirm(msj)) { 
      return false;
   } else {
      window.location='backcables.php';
   }
}
ответил FRECIA 20 Mayam13 2013, 03:48:41
0

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

onclick="confirm('Are you sure that you want to delete this comment?'); commentDelete(1);return false;"
ответил Felipe 29 PMpFri, 29 Apr 2011 21:00:48 +040000Friday 2011, 21:00:48
0

Может быть, это потому, что вы установили 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;
    }
}
ответил Martin 23 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 23 Sep 2012 03:13:27 +0400 2012, 03:13:27

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132