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 相关文章推荐
JS JavaScript获取Url参数,src属性参数
Mar 09 Javascript
Jquery工作常用实例 使用AJAX使网页进行异步更新
Jul 26 Javascript
js验证模型自我实现的具体方法
Jun 21 Javascript
javascript实现页面内关键词高亮显示代码
Apr 03 Javascript
使用JQuery在线制作ppt并在线演示源码特效
Sep 08 Javascript
移动端js图片查看器
Nov 17 Javascript
Bootstrap媒体对象学习使用
Mar 07 Javascript
利用Vue2.x开发实现JSON树的方法
Jan 04 Javascript
Node.js实现mysql连接池使用事务自动回收连接的方法示例
Feb 03 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
May 26 Javascript
layer.open提交子页面的form和layedit文本编辑内容的方法
Sep 27 Javascript
vue组件传值的实现方式小结【三种方式】
Feb 05 Javascript
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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
PHP中数组的分组排序实例
2014/06/01 PHP
php常用字符函数实例小结
2016/12/29 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
2020/04/06 PHP
该如何加载google-analytics(或其他第三方)的JS
2010/05/13 Javascript
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
灵活应用js调试技巧解决样式问题的步骤分享
2012/03/15 Javascript
javascript中match函数的用法小结
2014/02/08 Javascript
在JavaScript中使用对数Math.log()方法的教程
2015/06/15 Javascript
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
JavaScript常用本地对象小结
2016/03/28 Javascript
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
2017/05/19 jQuery
微信小程序实现页面跳转传值以及获取值的方法分析
2017/12/18 Javascript
详解如何解决vue开发请求数据跨域的问题(基于浏览器的配置解决)
2018/11/12 Javascript
Nodejs让异步变成同步的方法
2019/03/02 NodeJs
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
浅谈webpack和webpack-cli模块源码分析
2020/01/19 Javascript
python 中文字符串的处理实现代码
2009/10/25 Python
Python对两个有序列表进行合并和排序的例子
2014/06/13 Python
Python 2与Python 3版本和编码的对比
2017/02/14 Python
pygame游戏之旅 游戏中添加显示文字
2018/11/20 Python
python内存管理机制原理详解
2019/08/12 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
python并发编程多进程 模拟抢票实现过程
2019/08/20 Python
运动服饰每月订阅盒:Ellie
2018/04/29 全球购物
局部内部类是否可以访问非final变量?
2013/04/20 面试题
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
拾金不昧的表扬信
2014/01/16 职场文书
行政助理的岗位职责
2014/02/18 职场文书
运动会开幕式主持词
2014/03/28 职场文书
企业党员岗位承诺书
2015/04/27 职场文书
劳动模范获奖感言
2015/07/31 职场文书
预备党员入党感言
2015/08/01 职场文书
个人自我鉴定怎么写?
2019/07/01 职场文书
Css预编语言及区别详解
2021/04/25 HTML / CSS
详解JS WebSocket断开原因和心跳机制
2021/05/07 Javascript