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 相关文章推荐
jquery autocomplete自动完成插件的的使用方法
Aug 07 Javascript
别了 JavaScript中的isXX系列
Aug 01 Javascript
简单的Jquery遮罩层代码实例
Nov 14 Javascript
jQuery中find()方法用法实例
Jan 07 Javascript
jQuery实现hover合成事件的方法
Aug 06 Javascript
Canvas实现放射线动画效果
Feb 15 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
Mar 13 Javascript
浅谈JsonObject中的key-value数据解析排序问题
Dec 06 Javascript
使用 Vue 绑定单个或多个 Class 名的实例代码
Jan 08 Javascript
详解JavaScript的BUG和错误
May 07 Javascript
koa2服务端使用jwt进行鉴权及路由权限分发的流程分析
Jul 22 Javascript
ES6中new Function()语法及应用实例分析
Feb 19 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
曾在DC漫画界反派角色扮演的演员,谁才是你心目中的小丑之王?
2020/04/09 欧美动漫
2款PHP无限级分类实例代码
2015/11/11 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
身份证号码前六位所代表的省,市,区, 以及地区编码下载
2007/04/12 Javascript
在线编辑器中换行与内容自动提取
2009/04/24 Javascript
用javascript判断IE版本号简单实用且向后兼容
2013/09/11 Javascript
html文档中的location对象属性理解及常见的用法
2014/08/13 Javascript
AngularJS学习笔记之TodoMVC的分析
2015/02/22 Javascript
jquery插件star-rating.js实现星级评分特效
2015/04/15 Javascript
JS或jQuery获取ASP.NET服务器控件ID的方法
2015/06/08 Javascript
JavaScript数组对象实现增加一个返回随机元素的方法
2015/07/27 Javascript
bootstrap vue.js实现tab效果
2017/02/07 Javascript
Vue内容分发slot(全面解析)
2017/08/19 Javascript
在JavaScript中如何访问暂未存在的嵌套对象
2019/06/18 Javascript
详解如何在Javascript中使用Object.freeze()
2020/10/18 Javascript
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
Python中字典和集合学习小结
2017/07/07 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
2018/01/24 Python
python 使用 requests 模块发送http请求 的方法
2018/12/09 Python
django搭建项目配置环境和创建表过程详解
2019/07/22 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
python爬虫模拟浏览器访问-User-Agent过程解析
2019/12/28 Python
Python标准库itertools的使用方法
2020/01/17 Python
python实现俄罗斯方块游戏(改进版)
2020/03/13 Python
pandas apply使用多列计算生成新的列实现示例
2021/02/24 Python
德国网上花店:Valentins
2018/08/15 全球购物
计算机维护专业推荐信
2014/02/27 职场文书
大学生第一学年自我鉴定
2014/09/12 职场文书
走群众路线学习心得体会
2014/10/31 职场文书
公司搬迁通知
2015/04/20 职场文书
2016年七夕爱情寄语
2015/12/04 职场文书
营销策划分析:怎么策划才能更好销量产品?
2019/09/04 职场文书
学习师德师风的心得体会(2篇)
2019/10/08 职场文书
nginx搭建图片服务器的过程详解(root和alias的区别)
2021/03/31 Servers
vscode内网访问服务器的方法
2022/06/28 Servers