使用AJAX提交表单时,选项卡上的Safari弹出窗口关闭

时间:2012-11-13 13:57:15

标签: javascript ajax safari

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

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

帖子由按钮触发:

  1. 使用jQuery Validation plugin
  2. 验证表单
  3. 插件选项包含submitHandler
  4. return false;选项
  5. 日期通过$.post发送,并显示一条消息,通知用户成功/失败。
  6. 有人知道如何避免在调用返回后触发此弹出窗口吗?在这种情况下,我们不希望强制重新加载。

    请注意,此行为可能是changed by the user,但不是很容易......

1 个答案:

答案 0 :(得分:0)

我无法在Windows上的Safari中复制此内容。

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

另一方面,在发送完毕后看到填好的表格(即使您正在显示确认消息)也可能对用户来说很奇怪(除非它是一个多用途表格并且预期会出现这种情况)

更新:在Mac Safari上进行测试,它的行为如您所述,但如果我删除了我输入的内容(这使浏览器首先提醒我),它就不会出现。因此,简单的字段重置应该可以解决问题。