javascript检查表单数据是否改变的方法


Posted in Javascript onJuly 30, 2013

有的时候,需要检查用户是否修改了一个表单中的内容,则可以使用下面的技巧,其中如果修改了表单的内容则返回true,没修改表单的内容则返回false。代码如下:

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"])) { 
if (e) { 
e.returnValue = "You have unsaved changes."; 
} 
return "You have unsaved changes."; 
} 
};
Javascript 相关文章推荐
prototype1.4中文手册
Sep 22 Javascript
javascript 关于# 和 void的区别分析
Oct 26 Javascript
JavaScript NodeTree导航栏(菜单项JSON类型/自制)
Feb 01 Javascript
JS实现点击图片在当前页面放大并可关闭的漂亮效果
Oct 18 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
May 22 Javascript
JavaScript模拟数组合并concat
Mar 06 Javascript
浅谈angular.copy() 深拷贝
Sep 14 Javascript
如何为vue的项目添加单元测试
Dec 19 Javascript
详解使用JWT实现单点登录(完全跨域方案)
Aug 02 Javascript
JavaScript使用表单元素验证表单的示例代码
Aug 20 Javascript
JavaScript实现图片放大预览效果
Nov 02 Javascript
vue+iview实现手机号分段输入框
Mar 25 Vue.js
JS 对输入框进行限制(常用的都有)
Jul 30 #Javascript
JS无限极树形菜单,json格式、数组格式通用示例
Jul 30 #Javascript
js中widow.open()方法使用详解
Jul 30 #Javascript
Extjs NumberField后面加单位实现思路
Jul 30 #Javascript
Js中获取frames中的元素示例代码
Jul 30 #Javascript
js中的屏蔽的使用示例
Jul 30 #Javascript
使用js正则控制input标签只允许输入的值
Jul 29 #Javascript
You might like
PHP中用正则表达式清除字符串的空白
2011/01/17 PHP
学习php过程中的一些注意点的总结
2013/10/25 PHP
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
2016/05/13 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
js opener的使用详解
2014/01/11 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
模拟javascript中的sort排序(简单实例)
2016/08/17 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
jQuery的 $.ajax防止重复提交的两种方法(推荐)
2016/10/14 Javascript
jQuery实现的简单悬浮层功能完整实例
2017/01/23 Javascript
webpack4 入门最简单的例子介绍
2018/09/05 Javascript
vue-better-scroll 的使用实例代码详解
2018/12/03 Javascript
如何提升vue.js中大型数据的性能
2019/06/21 Javascript
国内常用的js类库大全(CDN公共库)
2020/06/24 Javascript
Python中的自定义函数学习笔记
2014/09/23 Python
Python读写ini文件的方法
2015/05/28 Python
Python实现比较两个文件夹中代码变化的方法
2015/07/10 Python
Python基于有道实现英汉字典功能
2015/07/25 Python
python 排序算法总结及实例详解
2016/09/28 Python
Golang与python线程详解及简单实例
2017/04/27 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
css3 矩阵的使用详解
2018/03/20 HTML / CSS
美国的Eastbay旗下的运动款子品牌:Final-Score
2018/01/01 全球购物
乌克兰第一的珠宝网上商店:Gold.ua
2019/11/29 全球购物
Feelunique中文官网:欧洲最大化妆品零售电商
2020/07/10 全球购物
HR喜欢的自荐信格式
2013/10/08 职场文书
麦当劳辞职信范文
2014/01/18 职场文书
汽车机修工岗位职责
2014/03/06 职场文书
建筑安全生产责任书
2014/07/22 职场文书
公司周年庆典致辞
2015/07/30 职场文书
为什么说餐饮很难做,是因为你不了解这些新规则
2019/08/20 职场文书
详解Vue的sync修饰符
2021/05/15 Vue.js
Python万能模板案例之matplotlib绘制甘特图
2022/04/13 Python