当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 验证用户是否修改过页面的数据的实现方法

Javascript
用jquery ajax获取网站Alexa排名的代码
jQuery Selectors(选择器)的使用(九、表单对象属性篇)
javascript 数组使用方法汇总
用于CSS代码压缩与格式化的javascript函数代码
ExtJS下grid的一些属性说明
javascript 强制刷新页面的实现代码
js 加载并解析XML字符串的代码
jquery提示 "object expected"的解决方法
页面中iframe相互传值传参
jQuery 行背景颜色的交替显示(隔行变色)实现代码
魔方在线秒表javascript版
JavaScript 字符串与数组转换函数[不用split与join]
javascript与asp.net(c#)互相调用方法
javascript下搜索子字符串的的实现代码(脚本之家修正版)
JQuery下关于$.Ready()的分析
input 日期选择功能的javascript代码
js 页面传参数时 参数值含特殊字符的问题
读取table内容的javascript代码
最简单的javascript对象实例代码
JQuery Tips(2) 关于$()包装集你不知道的

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 386 ::
收藏到网摘: n/a

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