【发布时间】:2013-02-05 14:27:01
【问题描述】:
在 stackoverflow.com 上查看了许多类似的问题(也在其他资源上),但没有找到答案。所以我简化和概括了问题。这似乎是显而易见的解决方案:
$(document).ready(function() {
var a = 3;
var b = 5;
// no message when pressed submit button
$('form').submit(function() {
$(window).off('beforeunload');
});
// confirm of the need to save
$(window).on('beforeunload', function(e) {
if (a != b)
if (confirm('You changed data. Save?')) {
$('form').submit();
// alert('Your data is saved. (With alert submit() work only in FireFox!?)');
}
});
});
但不提交作品。如果你使用 alert(),它只在 FireFox 中有效。我想更正(可能没有延迟)跨浏览器解决方案。也许谁知道从根本上另一种方法解决方案。
附:在第一部分这里描述的一些原创性 beforeunload:https://stackoverflow.com/a/6065085/1356425,但这不是解决方案明显的功能。
【问题讨论】:
-
我相信实现这一点的唯一方法是通过同步 AJAX(如果您愿意,只需 JAX)调用提交您的表单,因为任何异步调用都会在页面卸载时中断。跨度>
标签: javascript jquery submit onbeforeunload confirm