2011-04-19 51 views
1

我已經提交按鈕submit_marksheets,它提交標記之前,它會要求確認。Javascript onbeforeunload Jquery事件錯誤

我還有一件事是每當做出更改,用戶將點擊另一個頁面,然後它會要求「保存更改」確認。

我在下面給出了這些代碼。問題是,當我點擊提交表格按鈕時,它會發出警告。但是當我點擊其他頁面之後,onbefore卸載不會調用。我不知道爲什麼。

誰能告訴我如何解決這個問題?

$(':input', document.frmMarksheets).live("change", function() { 
    $('#submit_marksheets').live('click', function() { 
     setConfirmUnload(false); 
     return true; 
    }); 
    setConfirmUnload(true); 
}); 

function setConfirmUnload(on) { 
    window.onbeforeunload = (on) ? unloadMessage : null; 
} 
+2

'unloadMessage'是一個字符串還是一個函數? – 2011-04-19 14:50:04

回答

0

我不知道在你的代碼問題的原因,但有麻煩與這種卸載確認,這是我所走的路線:

設置一個全局變量是你的指標是否發佈消息:

var ConfirmPageExit = true; 
window.onbeforeunload = function(){ return (ConfirmPageExit) ? unloadMessage : null; }; 

現在,任何嘗試退出都會觸發您的消息。然後,對於任何想用來關閉消息的內容,只需將該var設置爲false:

$('#submit_marksheets').live('click', function() { 
    ConfirmPageExit = false; 
});