javascript - 在 window.unload 上提交表单时出现问题

标签 javascript submit onunload

如果表单信息已更新 (album.updated = true),我在窗口卸载时提交表单时遇到问题:

window.onunload = function(evnt) {
  if (album.updated) {
    var save = confirm('Do you want to save changes?');
    if (save) {
      alert('submitting form...');
      document.edit_photos.submit();
    }
  }
}

它提醒“正在提交表单”,但没有保存任何内容。但是,当我使用“保存”按钮进行定期提交时,它会保存信息。这里可能出了什么问题?

最佳答案

您无法通过 unload 事件可靠地与服务器交互。

发送 AJAX 请求可能更可靠一些,但也不应依赖。

相反,您应该处理 onbeforeunload 事件并返回“您有未保存的更改”;
这将指示浏览器显示一个确认对话框,允许用户取消导航。 (之后他可以手动保存)

关于javascript - 在 window.unload 上提交表单时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4129782/

相关文章:

javascript - 当页面导航离开时 Javascript 会发生什么?

javascript - NG-repeat 在 html 表中没有按预期工作?

php - 如何仅在我提交查询时显示成功消息?

ios - 在将我的第一个 ios 应用程序发送到 Apple App store 之前,我应该做什么/知道什么?

html - CSS:将鼠标悬停在 HTML 提交按钮上

javascript - Vaadin JavaScript 卸载事件监听器未触发

javascript - 使用 onunload 关闭弹出窗口后刷新 div

javascript - 如何通过单击按钮启用特定输入

javascript - PowerBI 中的交互式对话框

javascript - 如何为链接回调实现类似 jquery 的 'success' 和 'failure' 函数