js检测离开或刷新页面时表单数据是否更改的方法


Posted in Javascript onAugust 02, 2016

本文实例讲述了js检测离开或刷新页面时表单数据是否更改的方法。分享给大家供大家参考,具体如下:

function formIsDirty(form) {
  for (var i = 0; i < form.elements.length; i++) {
    var element = form.elements[i];
    var type = element.type;
    if (type == "checkbox" || type == "radio") {
      if (element.checked != element.defaultChecked) {
        return true;
      }
    }
    else if (type == "hidden" || type == "password" || type == "text" || type == "textarea") {
      if (element.value != element.defaultValue) {
        return true;
      }
    }
    else if (type == "select-one" || type == "select-multiple") {
      for (var j = 0; j < element.options.length; j++) {
        if (element.options[j].selected != element.options[j].defaultSelected) {
          return true;
        }
      }
    }
  }
  return false;
}
window.onbeforeunload = function (e) {
  e = e || window.event;
  if (formIsDirty(document.forms["someForm"])) {
    // IE 和 Firefox
    if (e) {
      e.returnValue = "对不起,页面数据已做修改,尚未保存,确定要刷新或离开本页面?";
    }
    // Safari浏览器
    return "对不起,页面数据已做修改,尚未保存,确定要刷新或离开本页面?";
  }
};

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
在 IE 中调用 javascript 打开 Excel 表
Dec 21 Javascript
JavaScript 输入框内容格式验证代码
Feb 11 Javascript
关于window.pageYOffset和document.documentElement.scrollTop
Apr 05 Javascript
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
Dec 26 Javascript
使用jQuery实现星级评分代码分享
Dec 09 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
Dec 17 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
Oct 28 Javascript
js实现文本上下来回滚动
Feb 03 Javascript
vue-devtools的安装步骤
Apr 23 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
Jun 01 Javascript
TypeScript之调用栈的实现
Dec 31 Javascript
详解JavaScript中精度失准问题及解决方法
Feb 04 Javascript
AngularJS基础 ng-options 指令详解
Aug 02 #Javascript
深入理解JavaScript中Ajax
Aug 02 #Javascript
AngularJS基础 ng-open 指令简单实例
Aug 02 #Javascript
AngularJS基础 ng-non-bindable 指令详细介绍
Aug 02 #Javascript
实例详解jQuery的无new构建
Aug 02 #Javascript
AngularJS基础 ng-mouseover 指令简单示例
Aug 02 #Javascript
JavaScript比较当前时间是否在指定时间段内的方法
Aug 02 #Javascript
You might like
php cli换行示例
2014/04/22 PHP
php判断输入是否是纯数字,英文,汉字的方法
2015/03/05 PHP
PHP实现的迷你漂流瓶
2015/07/29 PHP
[原创]用javascript实现检测指定目录是否存在的方法
2008/01/12 Javascript
javascript通过navigator.userAgent识别各种浏览器
2013/10/25 Javascript
jQuery中removeClass()方法用法实例
2015/01/05 Javascript
jQuery选择id属性带有点符号元素的方法
2015/03/17 Javascript
JS实现很实用的对联广告代码(可自适应高度)
2015/09/18 Javascript
JavaScript识别网页关键字并进行描红的方法
2015/11/09 Javascript
跟我学习javascript解决异步编程异常方案
2015/11/23 Javascript
jQuery点击其他地方时菜单消失的实现方法
2016/04/22 Javascript
Markdown与Bootstrap相结合实现图片自适应属性
2016/05/04 Javascript
微信小程序学习(4)-系统配置app.json详解
2017/01/12 Javascript
node.js 中间件express-session使用详解
2017/05/20 Javascript
webpack3+React 的配置全解
2017/08/21 Javascript
浅谈vue项目如何打包扔向服务器
2018/05/08 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
2018/07/24 Javascript
分享Angular http interceptors 拦截器使用(推荐)
2019/11/10 Javascript
微信小程序轮播图swiper代码详解
2020/12/01 Javascript
详解Python中的文本处理
2015/04/11 Python
python 时间戳与格式化时间的转化实现代码
2016/03/23 Python
python 禁止函数修改列表的实现方法
2017/08/03 Python
PyQt5 多窗口连接实例
2019/06/19 Python
VSCode中自动为Python文件添加头部注释
2019/11/14 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
CSS3实现的炫酷菜单代码分享
2015/03/12 HTML / CSS
Ray-Ban雷朋太阳眼镜英国官网:Ray-Ban UK
2019/11/23 全球购物
酒店总经理助理职责
2014/02/12 职场文书
企业指导教师评语
2014/04/28 职场文书
维稳承诺书
2015/01/20 职场文书
营业员岗位职责范本
2015/04/14 职场文书
自荐信范文
2019/05/20 职场文书
导游词之天下银坑景区
2019/11/21 职场文书
Python中glob库实现文件名的匹配
2021/06/18 Python
MySql统计函数COUNT的具体使用详解
2022/08/14 MySQL