【问题标题】:Safari Popup on tab close when submitting forms with AJAX使用 AJAX 提交表单时关闭选项卡上的 Safari 弹出窗口
【发布时间】:2012-11-01 22:58:35
【问题描述】:

在 Safari 浏览器中,在带有表单的页面上,当用户尝试关闭浏览器的选项卡并且表单尚未经过验证时,会打开一个系统模式弹出窗口。文本说:您在“[页面名称]”上输入了文本。如果关闭窗口,您的更改将丢失。还是要关闭窗口?

当帖子重定向到另一个页面时,此行为是正常的。在我们的网站上,我们有一个使用 Ajax 请求验证表单的页面。由于页面没有重新加载,即使表单已经提交,也会出现弹窗,最终用户可能会觉得奇怪。

帖子由按钮触发:

  1. 使用jQuery Validation plugin 验证表单
  2. 插件选项包括submitHandler 选项,return false;
  3. 日期通过$.post 发送,并有一条消息通知用户成功/失败。

有没有人知道如何避免在呼叫返回后触发此弹出窗口?在这种情况下,我们不希望强制重新加载。

请注意,这种行为可以是changed by the user,但不是很容易...

【问题讨论】:

    标签: javascript ajax safari


    【解决方案1】:

    我无法在 Windows 上的 Safari 中复制它。

    也许在提交表单后尝试清空/重置输入字段,当然前提是提交时没有任何错误,或者更好的是,如果之后不需要,则完全删除表单。当然是使用 DOM 操作,而不是通过重新加载页面。

    附带说明,在发送后看到已填写的表单(即使您正在显示确认消息)对用户来说也可能很奇怪(除非它是一个多用途表单并且这种行为是意料之中的) .

    更新:在 Mac Safari 上测试,它的行为与您描述的一样,但是如果我删除了我输入的内容(这让浏览器首先提醒我),它就不会出现。因此,只需简单地重置字段即可。

    【讨论】:

    • 谢谢,这些是我们可能会探索的想法,以及其他一些想法。一旦我们有结果,我们会尽快更新这个问题。
    • 有没有人对此有解决方案,不涉及清空它们,这可能是使用 browserHistory.push 导航到同一页面?因为我认为在表单显示当前状态的情况下,这是一种糟糕的用户体验。
    猜你喜欢
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    相关资源
    最近更新 更多