验证用户是否修改过页面的数据的实现方法


Posted in Javascript onSeptember 26, 2008

起因:

在实现程序的修改模块时,要在页面端检查用户是否修改过数据,以便提醒用户及时保存修改后的数据。

实现要求:

判断用户是否修改了输入的内容,要能判断input中的checkbox,text,radio等,不知道会多少个input,也不知道input的ID和name,要在客户端判断是否修改,不能产生提交。还要同时满足IE和firefox两种环境。也要支持master和content页的使用。

解决方案;

处理思路:在页面加载时记录所有的input的值或状态,如果要求在用户进行修改操作时立即调整控件状态,则在数据区div上的onclick和onkeypress事件里调用检查数据是否改变的函数,并设置相应控件的状态(用ha_setch())。如果是在提交或用户手动控制检查过程时,则在相应的操作事件中调用检查数据是否改变(例在button的onclick()中使用ha_checkin()控制提交)。

以下是实现代码
var ha_last=new Array;//定义一个全局的空对象,存放所有的初始值。
function ha_get()//读取初始值
{ var ha_input = document.getElementsByTagName("input");
for (var i=0;i<ha_input.length;i++)
{
if (ha_input[i].type=="password"){ ha_last.push(ha_input[i].value);}//根本页面需要设置type的值和对象属性
if (ha_input[i].type=="radio") {ha_last.push(ha_input[i].checked);}//要保证检查的范围是否准确
}
}
window.onload=ha_get;//绑定读取初始值的函数
function ha_checkin()//检查新的输入值和初始值是否相等。返回判断结果。true为没有发生修改,false为有修改。
{ var ha_now=new Array;
var ha_input = document.getElementsByTagName("input");
for (var i=0;i<ha_input.length;i++)
{
if (ha_input[i].type=="password"){ ha_now.push(ha_input[i].value);}//根本页面需要设置type的值和对象属性。
if (ha_input[i].type=="radio") {ha_now.push(ha_input[i].checked);}//也要保证和ha_get()中检查的标签相一致
}
if (ha_now.toString()==ha_last.toString())//没修改
{return true;}
else//有修改
{return false;}
}
function ha_setch(){//设置相应的控件状态
if (ha_checkin())//没有变化

 //改变控件的显示和功能状态
else//有变化

 //改变控件的显示和功能状态
}

注:以上解决方案只在IE6和firefox3.0。2中测试并通过。没有在其它的浏览器中测试。

Javascript 相关文章推荐
js下利用控制器载入对应脚本
Jul 17 Javascript
js 判断一个元素是否在页面中存在
Dec 27 Javascript
使用js在页面中绘制表格核心代码
Sep 16 Javascript
js获取当前日期时间及其它操作汇总
Apr 17 Javascript
jQuery实现html元素拖拽
Jul 21 Javascript
JS获取一个未知DIV高度的方法
Aug 09 Javascript
对js中回调函数的一些看法
Aug 29 Javascript
使用 vue 实例更好的监听事件及vue实例的方法
Apr 22 Javascript
jquery实现弹窗(系统提示框)效果
Dec 10 jQuery
JavaScript实现飞舞的泡泡效果
Feb 07 Javascript
微信小程序纯文本实现@功能
Apr 08 Javascript
基于element-ui封装可搜索的懒加载tree组件的实现
May 22 Javascript
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
Sep 25 #Javascript
js每次Title显示不同的名言
Sep 25 #Javascript
Js动态创建div
Sep 25 #Javascript
自己开发Dojo的建议框架
Sep 24 #Javascript
Discuz! 6.1_jQuery兼容问题
Sep 23 #Javascript
javascript的trim,ltrim,rtrim自定义函数
Sep 21 #Javascript
javascript各种复制代码收集
Sep 20 #Javascript
You might like
PHP中date()日期函数有关参数整理
2011/07/19 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
php对文件进行hash运算的方法
2015/04/03 PHP
php实现给二维数组中所有一维数组添加值的方法
2017/02/04 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
JS获取地址栏参数的几种方法小结
2014/02/28 Javascript
JavaScript基础语法、dom操作树及document对象
2014/12/02 Javascript
Javascript 正则表达式实现为数字添加千位分隔符
2015/03/10 Javascript
jQuery解析Json实例详解
2015/11/24 Javascript
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
mpvue项目中使用第三方UI组件库的方法
2018/09/30 Javascript
JavaScript ES6常用基础知识总结
2019/02/09 Javascript
小程序api实现promise封装过程解析
2019/11/21 Javascript
解决vue项目运行npm run serve报错的问题
2020/10/26 Javascript
Python中__call__用法实例
2014/08/29 Python
Python中使用语句导入模块或包的机制研究
2015/03/30 Python
在Python中使用zlib模块进行数据压缩的教程
2015/06/26 Python
Python离线安装PIL 模块的方法
2019/01/08 Python
Python OpenCV 调用摄像头并截图保存功能的实现代码
2019/07/02 Python
Pytorch 多维数组运算过程的索引处理方式
2019/12/27 Python
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
怎样写演讲稿
2014/01/04 职场文书
服务之星获奖感言
2014/01/21 职场文书
中学生励志演讲稿
2014/04/26 职场文书
五分钟演讲稿
2014/04/30 职场文书
会议室标语
2014/06/21 职场文书
教育合作协议范本
2014/10/17 职场文书
依法行政工作汇报
2014/10/28 职场文书
护士长2014年度工作总结
2014/11/11 职场文书
团员自我评价范文
2015/03/10 职场文书
2015年酒店前台工作总结
2015/04/20 职场文书
利用Python网络爬虫爬取各大音乐评论的代码
2021/04/13 Python
什么是clearfix (一文搞清楚css清除浮动clearfix)
2023/05/21 HTML / CSS