验证用户是否修改过页面的数据

起因:

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

 

实现要求:

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

 

解决方案;

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

 

  以下是实现代码

  1. var ha_last=new Array;//定义一个全局的空对象,存放所有的初始值。
  2. function ha_get()//读取初始值
  3. var ha_input = document.getElementsByTagName("input");
  4.      for (var i=0;i<ha_input.length;i++)         
  5.      {
  6.         if (ha_input[i].type=="password"){ ha_last.push(ha_input[i].value);}//根本页面需要设置type的值和对象属性
  7.         if (ha_input[i].type=="radio") {ha_last.push(ha_input[i].checked);}//要保证检查的范围是否准确
  8.      }
  9. }
  10. window.οnlοad=ha_get;//绑定读取初始值的函数
  11. function ha_checkin()//检查新的输入值和初始值是否相等。返回判断结果。true为没有发生修改,false为有修改。
  12. var ha_now=new Array;
  13.      var ha_input = document.getElementsByTagName("input");
  14.      for (var i=0;i<ha_input.length;i++)         
  15.      {
  16.         if (ha_input[i].type=="password"){ ha_now.push(ha_input[i].value);}//根本页面需要设置type的值和对象属性。
  17.         if (ha_input[i].type=="radio") {ha_now.push(ha_input[i].checked);}//也要保证和ha_get()中检查的标签相一致
  18.      }
  19.      if (ha_now.toString()==ha_last.toString())//没修改
  20.        {return true;}
  21.      else//有修改
  22.        {return false;}
  23. }
  24. function ha_setch(){//设置相应的控件状态
  25.   if (ha_checkin())//没有变化
  26.    //改变控件的显示和功能状态
  27.   else//有变化
  28.    //改变控件的显示和功能状态
  29. }

 

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值