2010-09-01 14 views
1

C'est le script que j'ai actuellement -Comment arrêter une redirection Actionlink et à la place faire un popup et rediriger en utilisant javascript?

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

Voici le lien qui est là pour chaque enregistrement et nous pouvons supprimer chaque système lorsque l'on clique sur le bouton de suppression -

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

Maintenant ici C'est le problème que le lien d'action redirige, peu importe ce qui se passe et je dois l'arrêter. Je veux dire que l'utilisateur appuie sur cancel pour confirmer que l'actionlink s'exécute encore et passe à RemoveSystem Action, où je veux qu'il reste sur la page. J'ai pensé à utiliser un hyperlien HTML mais je ne sais pas comment je devrais passer la valeur à le javascript dans ce cas. Est-ce que quelqu'un peut m'aider s'il vous plait ?

Répondre

5

Vous devez empêcher l'action par défautdu lien comme celui-ci:

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

Ou ceci:

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

Actuellement, le lien est en train de faire cette fonction, mais aussi faire ce qu'il fait sans JavaScript du tout, ce qui est d'aller à l'href il a ... c'est le comportement que vous devez empêcher de se produire .

2

return false si vous voulez éviter l'action par défaut:

$('.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; 
}); 

ou utilisez preventDefault:

$('.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

Dans votre fonction de script ajouter:

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