作家
登录

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

作者: 来源:www.28hudong.com 2013-03-30 02:55:46 阅读 我要评论

起因:   在实现程序的修改模块时,要在页面端检查用户是否修改过数据,以便提醒用户及时保存修改后的数据。 实现要求:   判断用户是否修改了输入的内容,要能判断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中测试并通过。没有在其它的浏览器中测试。

  推荐阅读

  js返回当前网页的url

无标题文档 脚本之家 脚本介绍 返回当前网页的URL 脚本代码 document.write(document.URL) 脚本运行 该脚本的价值是在没有服务器技术的情况下通过标签访问的方法>>>详细阅读


本文标题:验证用户是否修改过页面的数据的实现方法

地址:http://www.17bianji.com/kaifa2/JS/29386.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)