2012-09-29 91 views
0

我在表單頁面上安裝了以下js代碼以提醒用戶他是否在填寫表單時嘗試離開頁面:如何在用戶點擊提交按鈕時阻止退出javascript警告

<script type="text/javascript"> 
    window.onbeforeunload = function (evt) { 
    var message = 'Data you entered may not be saved'; 
    if (typeof evt == 'undefined') { 
    evt = window.event; 
    } 
    if (evt) { 
    evt.returnValue = message; 
    } 
    return message; 
    } 
</script> 

當用戶點擊其他鏈接或製表符以試圖離開頁面時,它可以正常工作。但即使用戶單擊提交按鈕在表單中提交更改時,也會彈出javascript消息。

如何防止在提交表單時彈出此js消息?

+0

你必須綁定到'形式的submit'事件,並刪除'onbeforeunload'結合。 –

回答

2

在窗體的onsubmit,設置一個標誌,告訴onbeforeunload,它可以忽略此卸載嘗試。

例如:

<form ... onsubmit="window.nounloadcheck = true; return true;"> 

而在你的onbeforeunload,你可以這樣做:

window.onbeforeunload = function (evt) { 
    if(window.nounloadcheck == true) return; // ignore 
    ... 
+0

工程就像一個魅力。謝謝 – user1322707

2

你有幾個選項。

  1. 當您發佈您在beforeunload函數中檢查並相應採取行動時,您可以設置全局標誌。

  2. 您可以通過將其設置爲空函數或僅提示的函數來刪除beforeunload函數。

+0

其實,刪除'onbeforeunload'綁定似乎是一個更好,更簡單的選擇。 – techfoobar

相關問題