Ссылка на действие с диалоговым окном подтверждения

Я хочу, чтобы перед открытием ссылки отображалось подтверждающее сообщение. Однако, несмотря на это, по ссылке переходят, несмотря на нажатие кнопки «Отмена» или закрытия диалогового окна. Пожалуйста, помогите мне, так как я застрял в этом.

<div style="float: left; width: 40px; height: 10px; "> @Html.ActionLink("-Pg", "SupprimerPage", "Section", new { pageId = @item.Id }, new { onclick = "ConfirmerSuppressionPage(event);", @class = "editLink", style = "width:30px" })</div>

Javascript:

 function ConfirmerSuppressionPage(event) {
    var x = confirm("Êtes-vous sûr de vouloir supprimer cette page?");
    console.log(x);
    if (x == null) {
        event.preventDefault();
        return false;
    }

    if (x == true) {

        return true;
    }
    else {
        event.preventDefault();
        event.stopPropagation();
    }
}

person refresh    schedule 18.11.2015    source источник
comment
Предлагаем вам избавиться от onclick и просто использовать $('.editLink).click(function() { return confirm("Êtes-vous ....?"); })   -  person    schedule 18.11.2015
comment
@StephenMuecke: он по-прежнему следует URL-адресу, несмотря на нажатие кнопки «Отмена».   -  person refresh    schedule 18.11.2015
comment
@tabby какой браузер вы тестируете? В Chrome и IE 11 все работает как положено.   -  person teo van kot    schedule 18.11.2015
comment
У меня отлично работает (как ваш, так и мой). А с вашим кодом все, что вам нужно, это одна строка кода - return confirm("Êtes-vous....?");   -  person    schedule 18.11.2015
comment
@teovankot: Я тестировал Chrome, IE и firefox.   -  person refresh    schedule 18.11.2015
comment
@StephenMuecke: Я тестировал его на скрипке, и он отлично работает, но не в моем проекте. Есть идеи, где мне это искать? Пожалуйста, помогите спасибо   -  person refresh    schedule 18.11.2015
comment
Есть ошибки в консоли браузера?   -  person    schedule 18.11.2015
comment
@StephenMuecke: в консоли нет ошибки.   -  person refresh    schedule 18.11.2015


Ответы (2)


Это может не помочь, но у меня была аналогичная проблема с некоторыми браузерами, не соблюдающими кнопку отмены, и я создал функцию замены для ее решения:

function showConfirm(str) {
    if (confirm(str) == false) {
        if (typeof (event) != "undefined") {
            event.returnValue = false;
        }

        return false;
    }
    else {
        return true;
    }
}

Затем в вашей функции ConfirmerSuppressionPage замените вызов confirm на showConfirm

person Mark E    schedule 18.11.2015

Confirm - это диалоговое окно JavaScript, которое вернет true или false. И JavaScript не будет выполнять следующую строку, пока пользователь не нажмет кнопку Yes или No диалогового окна.

Any how Confirm will return you True or False, and now you have to deal with it.
person Chetan Sharma    schedule 18.11.2015
comment
Предлагаю вам прочитать вопрос еще раз. OP проверяет возвращаемое значение. - person ; 18.11.2015