2012-03-12 131 views
3

我想知道如果用戶選擇從它導航頁面是否髒,檢查什麼是最好的方法。例如,有一個註冊表單,用戶輸入他的所有信息。然後不小心點擊一個鏈接從中導航。如何檢查骯髒的標誌

我在網上發現它,它檢查頁面是否髒,如果一個人對任何表單輸入值進行更改。

<script type="text/javascript"> 
var isDirty = false; 
var msg = 'You haven\'t saved your changes.'; 
$(document).ready(function(){ 
    $(':input').change(function(){ 
     if(!isDirty){ 
      isDirty = true; 
     } 
    }); 
    window.onbeforeunload = function(){ 
     if(isDirty){ 
      return msg; 
     } 
    }; 
}); 
</script> 

所以這個效果很好。但是,我如何排除一些彈出式鏈接?有沒有更好的方法來做到這一點?

+4

爲什麼彈出窗口會調用window.onbeforeunload?我不認爲window.open會觸發卸載。 http://jsfiddle.net/skram/7d5ZW/3/ – 2012-03-12 20:18:00

+0

哦,我沒有意識到這一點。你是對的。謝謝。有趣的是我的解決方案一直工作。 – MindGame 2012-03-12 20:51:37

回答

0

您應該在這些輸入上添加onclick事件偵聽器並「返回false」; 喜歡的東西

$('a.className="popup"').onclick = function(){return false}; 

< A HREF = 「#」 的onclick = 「返回false;」 >文本</a >