千山鳥(niǎo)飛絕 萬(wàn)徑人蹤滅
          勤練內(nèi)功,不斷實(shí)踐招數(shù)。爭(zhēng)取早日成為武林高手

          2009年11月23日

          在實(shí)現(xiàn)程序的修改模塊時(shí),要在頁(yè)面端檢查用戶(hù)是否修改過(guò)數(shù)據(jù),以便提醒用戶(hù)及時(shí)保存修改后的數(shù)據(jù)。
          實(shí)現(xiàn)要求:
            判斷用戶(hù)是否修改了輸入的內(nèi)容,要能判斷input中的checkbox,text,radio等,不知道會(huì)多少個(gè)input,也不知道input的ID和name,要在客戶(hù)端判斷是否修改,不能產(chǎn)

          生提交。還要同時(shí)滿(mǎn)足IE和firefox兩種環(huán)境。也要支持master和content頁(yè)的使用。
          解決方案;
            處理思路:在頁(yè)面加載時(shí)記錄所有的input的值或狀態(tài),如果要求在用戶(hù)進(jìn)行修改操作時(shí)立即調(diào)整控件狀態(tài),則在數(shù)據(jù)區(qū)div上的onclick和onkeypress事件里調(diào)用檢查數(shù)據(jù)

          是否改變的函數(shù),并設(shè)置相應(yīng)控件的狀態(tài)(用ha_setch())。如果是在提交或用戶(hù)手動(dòng)控制檢查過(guò)程時(shí),則在相應(yīng)的操作事件中調(diào)用檢查數(shù)據(jù)是否改變(例在button的onclick

          ()中使用ha_checkin()控制提交)。
             以下是實(shí)現(xiàn)代碼
          var ha_last=new Array;//定義一個(gè)全局的空對(duì)象,存放所有的初始值。
          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);}//根本頁(yè)面需要設(shè)置type的值和對(duì)象屬性
          if (ha_input[i].type=="radio") {ha_last.push(ha_input[i].checked);}//要保證檢查的范圍是否準(zhǔn)確
          }
          }
          window.onload=ha_get;//綁定讀取初始值的函數(shù)
          function ha_checkin()//檢查新的輸入值和初始值是否相等。返回判斷結(jié)果。true為沒(méi)有發(fā)生修改,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);}//根本頁(yè)面需要設(shè)置type的值和對(duì)象屬性。
          if (ha_input[i].type=="radio") {ha_now.push(ha_input[i].checked);}//也要保證和ha_get()中檢查的標(biāo)簽相一致
          }
          if (ha_now.toString()==ha_last.toString())//沒(méi)修改
          {return true;}
          else//有修改
          {return false;}
          }
          function ha_setch(){//設(shè)置相應(yīng)的控件狀態(tài)
          if (ha_checkin())//沒(méi)有變化
             //改變控件的顯示和功能狀態(tài)
          else//有變化
             //改變控件的顯示和功能狀態(tài)
          }


          做了適當(dāng)?shù)男薷摹W詈笤赽utton里面onclick直接調(diào)用

           

               var ha_last=new Array;//定義一個(gè)全局的空對(duì)象,存放所有的初始值。
                      function ha_get()//讀取初始值
                      {
                          var ha_input = document.getElementsByTagName("input");
                          ha_last.push($("#select").val());//采用jquery獲取select 選擇的值
                          for (var i=0;i<ha_input.length;i++)
                          {
                              if (ha_input[i].type=="text"){ ha_last.push(ha_input[i].value);}//根本頁(yè)面需要設(shè)置type的值和對(duì)象屬性
                          }
                      }
                      window.onload=ha_get;//綁定讀取初始值的函數(shù)
                      function ha_checkin(action)//檢查新的輸入值和初始值是否相等。返回判斷結(jié)果。true為沒(méi)有發(fā)生修改,false為有修改。
                      {
                               if(action=="update"){
                              var ha_now=new Array;
                              var ha_input = document.getElementsByTagName("input");
                              ha_now.push($("#select").val());
                             
                              for (var i=0;i<ha_input.length;i++)
                              {
                                  if (ha_input[i].type=="text"){ ha_now.push(ha_input[i].value);}//根本頁(yè)面需要設(shè)置type的值和對(duì)象屬性。
                              }
                              if (ha_now.toString()==ha_last.toString())//沒(méi)修改
                              {
                                  alert("沒(méi)有修改");
                                  return false;
                              }
                              else//有修改
                              {
                                  //  return true;
                              }
                          }
                      }

           


           
                  

           

           

          posted @ 2009-11-23 17:36 笑口常開(kāi)、財(cái)源滾滾來(lái)! 閱讀(563) | 評(píng)論 (0)編輯 收藏
           
          主站蜘蛛池模板: 临汾市| 嘉义县| 磴口县| 大渡口区| 永平县| 瑞昌市| 邳州市| 资中县| 甘孜| 汾阳市| 郧西县| 贵南县| 肃南| 蓝山县| 阆中市| 岑巩县| 金沙县| 白水县| 汉寿县| 威海市| 奇台县| 永善县| 临朐县| 营口市| 图们市| 翼城县| 库车县| 鹤峰县| 阿鲁科尔沁旗| 彩票| 博客| 巴中市| 历史| 开封县| 祁连县| 金平| 江安县| 咸阳市| 诸城市| 甘孜县| 安义县|