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

时间:2011-07-08 08:18:36

标签: javascript jquery html user-input user-experience

要阻止用户离开我的网页,我正在使用此javascript:

window.onbeforeunload = function()
{
  if($('textarea#usermessage').val() != '')
  {
    return "You have started writing a message.";
  }
};

这会显示一条消息,警告用户不要离开页面,因为他们已经开始编写邮件但未提交。这表示可以防止用户丢失此数据。

现在,如何在提交表单时停止显示此消息?

2 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分:5)

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