判断一个表单是否被修改过
时间:2011-02-18
来源:互联网
转:JKisJK
判断一个表单是否被修改过,在不少地方需要用到。
例如,用户打开一个订单编辑页,过一会后,他要关闭页面,
如果用户有修改,那最好能提示下他“请问您确定要离开本页吗?确认离开当前页面吗?\n未保存的数据将会丢失!\n请按“确定”以继续,或者按“取消”回到当前页。”
如果用户没有修改,则不用提醒。
QWrap里提供了一个判断form是否已有改变的方法,代码如下:
复制代码
它的第一个参数是form对象。返回值是这个表单是否与load页面时的值的状态是否有变更。
第二个参数是:是为了应对“某些元素值就算是变了,也当作未变”的需求。
判断一个表单是否被修改过
判断一个表单是否被修改过,在不少地方需要用到。
例如,用户打开一个订单编辑页,过一会后,他要关闭页面,
如果用户有修改,那最好能提示下他“请问您确定要离开本页吗?确认离开当前页面吗?\n未保存的数据将会丢失!\n请按“确定”以继续,或者按“取消”回到当前页。”
如果用户没有修改,则不用提醒。
QWrap里提供了一个判断form是否已有改变的方法,代码如下:
- /**
- * 判断form的内容是否有改变
- * @method isFormChanged
- * @param {element} el form对象
- * @param {string} filter (Optional) 过滤函数,会被循环调用传递给item作参数要求返回布尔值判断是否过滤
- * @return {bool} 是否改变
- */
- var isFormChanged= function (el, filter) {
- el = g(el);
- filter = filter || function (el) { return false; };
- var els = el.elements, l = els.length, i = 0, j = 0, el, opts;
- for (; i < l ; ++ i, j = 0) {
- el = els[i];
- switch (el.type) {
- case "text":
- case "hidden":
- case "password":
- case "textarea":
- if (filter(el)) break;
- if (el.defaultValue != el.value) return true;
- break;
- case "radio":
- case "checkbox":
- if (filter(el)) break;
- if (el.defaultChecked != el.checked) return true;
- break;
- case "select-one":
- j = 1;
- case "select-multiple":
- if (filter(el)) break;
- opts = el.options;
- for (; j < opts.length ; ++ j) {
- if (opts[j].defaultSelected != opts[j].selected) return true;
- }
- break;
- }
- }
- return false;
- };
第二个参数是:是为了应对“某些元素值就算是变了,也当作未变”的需求。
作者: 听老歌 发布时间: 2011-02-18
学习了,谢谢分享,

作者: pinke8 发布时间: 2011-02-19
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28