javascript - 除非按下后退按钮,否则确认卸载/退出对话框?

标签 javascript prototype

当用户试图离开我的表单时,我有一些简单的代码来显示确认对话框:

window.onbeforeunload = askConfirm;
function askConfirm(){
    return "Your answers will be lost.";
}

但这是一个多页表单,他们经常按返回键更改前一页的某些值。

但是当他们这样做时,这个对话框仍然会出现。

有解决办法吗?

最佳答案

不幸的是,我建议的答案实际上并没有回答您的问题,而是一种解决方案。这里唯一可能的解决方案 imv 是通过存储所有页面的表单答案来确保用户单击后退按钮实际上不会产生问题。对于 PHP,我会将它们存储在一个 session 中 ($_SESSION)。您必须认识到,与浏览器中的任何其他 UI 元素相比,用户使用后退按钮的次数更多。如果您的表单确实必须跨多个页面,那么您需要确保他们输入的数据在所有这些页面上都是持久的。我实际上会在您自己的界面中为此提供导航。在视觉上提供清晰的顺序流程,并在可能的情况下允许通过此流程进行即时导航。

关于javascript - 除非按下后退按钮,否则确认卸载/退出对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1882955/

相关文章:

javascript - 我应该如何将原型(prototype)初始化转换为 ES6

javascript - 为什么我的位置未定义且显示未更新?

javascript - 对原型(prototype)链、原语和对象的困惑

javascript - 无论如何,有没有办法使实例的名称等于构造函数而不用 new ?

javascript - 扩展对象导致 jQuery 错误

javascript - xhr.getAllResponseHeader 返回源代码

javascript - 想在使用 WshShell.Exec 方法时隐藏命令提示符窗口

javascript - 为什么 Backbone.Collection 对第一个查看者显示两次?

javascript - 使用 jQuery 从跨域 Ajax 请求接收 XML 响应

javascript - 可定制/主题化的用户界面