2009-12-08 114 views
0

我有一些JavaScript代碼來提醒用戶,離開頁面將失去答案以形成問題。Javascript消息確認退出表單時

window.onbeforeunload = askConfirm; 
function askConfirm(){ 
     return "Your answers will be lost."; 
} 

我想使這一切都發生,但表格提交。

我的提交按鈕有ID #submit,我正在使用原型框架。

所以像這樣:如果$("submit")點擊然後跳過函數調用?

我對JS/Prototype還很新,所以我不確定如何處理這個。

回答

4

我會建議使用一個全局變量,因爲如果用戶沒有更改表單,您可能想要取消確認。如果您開始輸入答案並試圖離開,則系統會提示您確認,但如果您未開始輸入,則不會提示您。

創建一個全局變量。在每個表單字段上,如果進行了更改,blur事件可以設置變量。 askConfirm函數可以在提示前檢查變量。

1

你可以只提交表單之前解除綁定的事件:

document.getElementById('formId').onsubmit = function() { 
    window.onbeforeunload = null; 
}; 
2

我將onclick事件添加到按鈕。該事件將全局變量設置爲true(例如dont_confirm_now)。如果該標誌設置爲true,則不返回任何內容。請記住,如果用戶取消加載下一頁,請立即重置變量。

+1

我喜歡變量方法,因爲您可以將變量初始化爲false,並且只有在用戶修改頁面上的某些內容時將其切換爲true。 – 2009-12-08 14:50:55