2012-01-06 32 views
3

我有一個使用AJAX提交的表單(允許用戶保存關於頁面的備註)。表單始終保持在頁面上可見,並且您可以繼續點擊保存以繼續更新記事。當頁面刷新時,阻止Safari瀏覽器顯示未保存的表單提示

在safari(但不是chrome或FF)中,如果您開始在表單中輸入內容並點擊重新加載,瀏覽器會以「您確定要重新加載,您有未保存的更改」類型對話框提示您。我的問題是,如果你保存你的筆記,那麼對話框也會彈出,然後點擊重新加載而不對文本區域進行任何更改。有什麼方法在JavaScript中爲我標記表單提交/ /保持不變,以便Safari瀏覽器不知道提示?

回答

1

我不是太肯定Safari瀏覽器,但你可以有這樣的行爲,在所有的瀏覽器有以下:

var confirmLeavePage = "Are you sure you want to exit this page, you have unsaved changes..." 
window.onbeforeunload = askConfirm; 
function askConfirm(){ 
    if (confirmLeavePage != false){ 
     return confirmLeavePage; 
    } 
} 

那麼所有你當沒有對文檔進行修改時,要將confirmLeavePage設置爲false。

希望這會有所幫助。

1

可能不是您的問題最大的解決方案在這裏..但是,如果您從窗體中移除html表單標籤,應該可以解決這個問題。

由於您使用AJAX已經,你可以直接從DOM得到元素的值..

例如...

<form><textarea></textarea></form> 

會給你確定消息。其中

<textarea></textarea> 

將重新加載。

希望這有助於在星期五下午:)

+0

感謝您的想法,但我想保留它作爲表單,因此它在JavaScript禁用時可用作標準提交。 – spike 2012-01-06 21:25:00

相關問題