刷新页面时阻止safari显示未保存的表单提示

时间:2012-01-06 20:33:57

标签: javascript html safari

我有一个表单(只有一个文本区域),使用AJAX提交,允许用户保存关于页面的注释。表单始终在页面上保持可见,您可以继续单击“保存”以继续更新注释。

在safari中(但不是chrome或FF),如果您开始在表单中键入并点击重新加载,浏览器会提示您“您确定要重新加载,还有未保存的更改”类型对话框。我的问题是,如果您保存笔记,对话框也会弹出,然后点击重新加载而不对文本区域进行任何进一步的更改。在javascript中是否有某种方式让我将表单标记为已提交//不变,以便safari知道不显示提示符?

2 个答案:

答案 0 :(得分:1)

可能不是这里问题的最佳解决方案..但是,如果你从表单中删除html表单标签,那应该解决它。

由于您已经使用了ajax,因此可以直接从DOM中获取元素的值。

示例......

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

会给你确定消息..其中

 <textarea></textarea>

只会重新加载。

希望这在周五下午有所帮助:)

答案 1 :(得分: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。

希望这有帮助。