首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向onbeforeunload添加成功标志时出现问题

问向onbeforeunload添加成功标志时出现问题
EN

Stack Overflow用户
提问于 2010-06-17 01:03:47
回答 2查看 457关注 0票数 0

在卸载之前遇到问题。我有一个通过jquery向导插件分成多个部分的长表单。我需要弹出一个确认对话框,如果你在任何步骤上点击后退,刷新,关闭等,但需要它不弹出确认对话框点击提交按钮。它工作了,或者至少我认为,它现在不工作了。

代码语言:javascript
复制
<script type="text/javascript">
var okToSubmit = false;
window.onbeforeunload = function() {
document.getElementById('Register').onclick = function() { okToSubmit = true; };
if(!okToSubmit) return "Using the browsers back button will cause you to lose all     form data. Please use the Next and Back buttons on the form"; 
};
</script>

‘'Register’是提交按钮ID,请帮助!

EN

回答 2

Stack Overflow用户

发布于 2010-06-17 01:08:35

问题是在if(!okToSubmit)之前不会调用onclick事件处理程序。你所做的就是当你说:

代码语言:javascript
复制
document.getElementById('Register').onclick = function() { okToSubmit = true; };

正在设置事件处理程序。您实际上并没有检索到okToSubmit的值。

解决此问题的一种方法可能是在注册onbeforeunload之前设置onclick事件处理程序。

票数 0
EN

Stack Overflow用户

发布于 2010-06-17 03:09:23

普通的旧JS语法有点生疏了,所以这里是用jQuery编写的,如果有人需要它的话,它是有效的,至少对于表单提交按钮是有效的。将方法更改为get,如果它适合您的需要

代码语言:javascript
复制
<script type="text/javascript">
$(document).ready(function(){
  var action_is_post = false;
  $("form").submit(function () {
    action_is_post = true;
  });

  window.onbeforeunload = confirmExit;
  function confirmExit()
  {
    if (!action_is_post)
      return 'Using the browsers back, refresh or close button will cause you to lose all form data. Please use the Next and Back buttons on the form.';
  }
});

</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3055522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档