我有一个表单(只有一个文本区域),使用AJAX提交,允许用户保存关于页面的注释。表单始终在页面上保持可见,您可以继续单击“保存”以继续更新注释。
在safari中(但不是chrome或FF),如果您开始在表单中键入并点击重新加载,浏览器会提示您“您确定要重新加载,还有未保存的更改”类型对话框。我的问题是,如果您保存笔记,对话框也会弹出,然后点击重新加载而不对文本区域进行任何进一步的更改。在javascript中是否有某种方式让我将表单标记为已提交//不变,以便safari知道不显示提示符?
答案 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。
希望这有帮助。