阻止用户离开网页,除非提交表单

9
为了防止用户离开我的页面,我正在使用以下javascript代码:
window.onbeforeunload = function()
{
  if($('textarea#usermessage').val() != '')
  {
    return "You have started writing a message.";
  }
};

这个消息是为了提醒用户不要离开页面,因为他们已经开始编写但尚未提交消息。这可以避免用户丢失这些数据。

那么,当表单被提交时,如何停止显示此消息?

2个回答

9
function handleWindowLeaving(message, form) {
    $(window).bind('beforeunload', function (event) {
        return message;
    });
    $(form).bind('submit', function () {
        $(window).unbind('beforeunload');
    });
};

调用此方法时,请传递您的消息和表单引用,它将在提交表单时自动删除 onbeforeunload。否则,向用户显示消息。


表单引用是什么意思?你是指名称标签吗? - ingh.am
我指的是所需表单元素的jQuery选择器。例如:$('form') - archil

5
在表单的提交处理程序中设置一个标志;在卸载处理程序中检查标志是否已设置。如果已设置 - voila,这是一个表单提交!

这个简单多了。谢谢。 - ingh.am

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接