2010-09-01 74 views
1

這是腳本我有什麼現在 -如何停止Actionlink重定向並改爲使用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> 

這裏是一個有每條記錄的鏈接,我們可以刪除每個系統當我們點擊了刪除按鈕 -

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

現在這裏無論發生什麼事情,動作鏈接都會重定向,我需要阻止它。我的意思是說,用戶按確認動作鏈接仍然執行並進入RemoveSystem行動,我希望它留在頁面上。我想使用HTML超鏈接,但我不知道我應該如何通過身份證的價值在這種情況下的JavaScript。任何人都可以請幫我嗎?

如果要防止默認動作

回答

5

您需要防止這樣的鏈接的默認行動:

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

返回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; 
}); 

或使用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

在你的腳本功能添加:

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