jQuery:在编辑模式下离开页面之前的确认对话框

时间:2017-08-28 06:13:56

标签: javascript jquery

当用户编辑某个字段并尝试转到其他页面或点击靠近该页面时,我尝试显示一条消息

出现

消息

此页面要求您确认是否要离开 - 您输入的数据可能无法保存。

我使用此代码:

$('#form').data('serialize',$('#form').serialize());
  // On load save form current state

$(window).bind('beforeunload', function(e){
    if($('#form').serialize()!=$('#form').data('serialize'))return true;
    else e=null;
    // i.e; if form state change show box not.
});

此代码仅在用户尝试编辑某些内容时才有效,如果不能,我可以关闭页面,这就是我想要的内容。

问题是,当我提交表单

时,也会显示该消息

当我尝试click button提交时,该消息也会出现

此页面要求您确认是否要离开 - 您输入的数据可能无法保存。

单击“提交”按钮时如何防止显示该消息?!!

1 个答案:

答案 0 :(得分:0)

将侦听器保存在变量中,并在提交

时将其删除

const onBeforeUnloadListener function(e){
    if($('#form').serialize()!=$('#form').data('serialize'))return true;
    else e=null;
    // i.e; if form state change show box not.
}

$(window).bind('beforeunload', onBeforeUnloadListener);

$('#form').on('submit', function() {
   $(window).unbind('beforeunload', onBeforeUnloadListener)
}