Как мне остановить перенаправление Actionlink и вместо этого всплывающее окно и перенаправление с использованием JavaScript? - PullRequest
1 голос
/ 01 сентября 2010

Это скрипт, который у меня есть на данный момент -

<script type="text/javascript">
        $(document).ready(function () {
            $('.RemoveSystem').click(function () {
                var href = $(this).attr('href');
                var answer = confirm("Are you sure you want to delete this system?");
                alert(answer);
                if (answer) 
                    window.location = href;
            });
        });
    </script> 

Вот ссылка, которая есть для каждой записи, и мы можем удалить каждую систему, когда нажмем на кнопку удаления -

 <%= Html.ActionLink("Delete", "RemoveSystem", new { SysNum = item.Id}, new { @class = "RemoveSystem" })%>

Теперь вот проблема, которую linklink перенаправляет независимо от того, что происходит, и мне нужно ее остановить.Я имею в виду, что пользователь нажимает «Отмена» при подтверждении, что ссылка действия все еще выполняется, и переходит к действию RemoveSystem, где я хочу, чтобы оно просто оставалось на странице. Я думал об использовании гиперссылки HTML, но я не знаю, как передать id значениеJavascript в этом случае.Может кто-нибудь помочь мне?

Ответы [ 3 ]

6 голосов
/ 01 сентября 2010

Вам нужно запретить действие по умолчанию для ссылки, например:

$('.RemoveSystem').click(function () {
  if (confirm("Are you sure you want to delete this system?")) 
    window.location = $(this).attr('href');
  return false;
});

Или это:

$('.RemoveSystem').click(function (e) {
  if (confirm("Are you sure you want to delete this system?")) 
    window.location = $(this).attr('href');
  e.preventDefault();
});

В настоящее время ссылка выполняет эту функцию, но также делает то, что делает вообще без JavaScript, то есть для перехода к href, который у нее есть ... это поведение, которое вам нужно предотвратить от происходящего.

2 голосов
/ 01 сентября 2010

Верните false, если вы хотите запретить действие по умолчанию:

$('.RemoveSystem').click(function () {
    var href = $(this).attr('href');
    var answer = confirm("Are you sure you want to delete this system?");
    if (answer) 
        window.location = href;
    return false;
});

или используйте protectDefault :

$('.RemoveSystem').click(function (evt) {
    var href = $(this).attr('href');
    var answer = confirm("Are you sure you want to delete this system?");
    if (answer) 
        window.location = href;
    evt.preventDefault();
});
1 голос
/ 01 сентября 2010

В вашем скрипте добавьте:

if (answer)  
    window.location = href;
else
   return false;
...