添加了用户单击后退按钮时的警报,但现在我想在提交表单时将其删除

Yam*_*088 3 html javascript forms jquery

我有一个很长的调查,我想阻止用户点击后退按钮并丢失所有数据.到目前为止,我有一个警告告诉他们他们将丢失所有数据但是当他们提交表单来处理页面时,它会弹出警报.有没有办法只有当他们按下提交按钮时才能禁用警报?这是我用来创建警报的方法:

window.onbeforeunload = function() { return "Your work will be lost."; };
Run Code Online (Sandbox Code Playgroud)

Sim*_*ano 6

您可以通过以下方式设置beforeunload侦听器:

var preventUser = function() {
    return "Your work will be lost";
}
window.addEventListener('beforeunload',preventUser);
Run Code Online (Sandbox Code Playgroud)

然后,当用户提交表单时,您可以通过以下方式删除侦听器:

function onSubmitForm(){
    window.removeEventListener('beforeunload',preventUser);
}
Run Code Online (Sandbox Code Playgroud)

例如:

<button onclick="onSubmitForm()">Submit Form</button>
Run Code Online (Sandbox Code Playgroud)