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


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 相关文章推荐
JQuery 小练习(实例代码)
Aug 07 Javascript
javascript中负数算术右移、逻辑右移的奥秘探索
Oct 17 Javascript
10分钟学会写Jquery插件实例教程
Sep 06 Javascript
jQuery中unwrap()方法用法实例
Jan 16 Javascript
javascript制作的简单注册模块表单验证
Apr 13 Javascript
js获取form的方法
May 06 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
Sep 04 Javascript
jQuery遮罩层实例讲解
May 11 jQuery
JavaScript中concat复制数组方法浅析
Jan 20 Javascript
JavaScript React如何修改默认端口号方法详解
Jul 28 Javascript
10分钟学会js处理json的常用方法
Dec 06 Javascript
使用原生javascript开发计算器实例代码
Feb 21 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
[FAQ]PHP中的一些常识:类篇
2006/10/09 PHP
PHP file_get_contents 函数超时的几种解决方法
2009/07/30 PHP
PHP实现采集中国天气网未来7天天气
2014/10/15 PHP
phpstorm编辑器乱码问题解决
2014/12/01 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
Thinkphp 空操作、空控制器、命名空间(详解)
2017/05/05 PHP
JavaScript TO HTML 转换
2006/06/26 Javascript
javascript之可拖动的iframe效果代码
2008/08/01 Javascript
AJAX 网页保留浏览器前进后退等功能
2011/02/12 Javascript
基于jQuery实现的Ajax 验证用户名是否存在的实现代码
2011/04/06 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
2015/03/03 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
关于原生js中bind函数的简单实现
2016/08/10 Javascript
用v-html解决Vue.js渲染中html标签不被解析的问题
2016/12/14 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
Angular2里获取(input file)上传文件的内容的方法
2017/09/05 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
js动态设置select下拉菜单的默认选中项实例
2018/08/21 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
js实现下拉框二级联动
2018/12/04 Javascript
小程序采集录音并上传到后台
2019/11/22 Javascript
JS原型和原型链原理与用法实例详解
2020/02/05 Javascript
JS中的const命令你真懂它吗
2020/03/08 Javascript
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
Pytorch中accuracy和loss的计算知识点总结
2019/09/10 Python
python递归调用中的坑:打印有值, 返回却None
2020/03/16 Python
零基础学Python之前需要学c语言吗
2020/07/21 Python
基于Python制作一副扑克牌过程详解
2020/10/19 Python
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
Python如何定义一个函数
2015/09/01 面试题
高级方案规划工程师岗位职责
2013/11/29 职场文书
贫困证明书格式及范文
2014/10/15 职场文书
2015年小学体育工作总结
2015/05/22 职场文书
严以用权学习心得体会
2016/01/12 职场文书
思想品德课教学反思
2016/02/24 职场文书
中国现代文学之经典散文三篇
2019/09/18 职场文书