【问题标题】:Stop safari from showing unsaved form prompt when page is refreshed刷新页面时停止 safari 显示未保存的表单提示
【发布时间】:2012-01-07 05:24:41
【问题描述】:

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

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

【问题讨论】:

    标签: javascript html 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。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

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

      由于您已经在使用 ajax,您可以直接从 DOM 中获取元素的值..

      示例 ...

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

      会给你确定消息..在哪里

       <textarea></textarea>
      

      只会重新加载。

      希望这对星期五下午有帮助:)

      【讨论】:

      • 感谢您的想法,但我想将其保留为表单,以便在禁用 javascript 时用作标准提交。
      猜你喜欢
      • 2013-10-27
      • 2015-08-30
      • 2014-04-20
      相关资源
      最近更新 更多