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

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

          生提交。還要同時(shí)滿足IE和firefox兩種環(huán)境。也要支持master和content頁(yè)的使用。
          解決方案;
            處理思路:在頁(yè)面加載時(shí)記錄所有的input的值或狀態(tài),如果要求在用戶進(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())。如果是在提交或用戶手動(dòng)控制檢查過程時(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為沒有發(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())//沒修改
          {return true;}
          else//有修改
          {return false;}
          }
          function ha_setch(){//設(shè)置相應(yīng)的控件狀態(tài)
          if (ha_checkin())//沒有變化
             //改變控件的顯示和功能狀態(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為沒有發(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())//沒修改
                              {
                                  alert("沒有修改");
                                  return false;
                              }
                              else//有修改
                              {
                                  //  return true;
                              }
                          }
                      }

           


           
                  

           

           

          posted on 2009-11-23 17:36 笑口常開、財(cái)源滾滾來! 閱讀(569) 評(píng)論(0)  編輯  收藏 所屬分類: jquery
           
          主站蜘蛛池模板: 伊金霍洛旗| 玉山县| 余干县| 祁东县| 炎陵县| 全椒县| 惠东县| 西藏| 东丽区| 宜都市| 达尔| 天祝| 易门县| 宜良县| 田林县| 清丰县| 泰兴市| 钟山县| 咸丰县| 垦利县| 昔阳县| 广平县| 大竹县| 磐安县| 区。| 舒城县| 霍城县| 梧州市| 股票| 龙海市| 高台县| 万年县| 丹棱县| 临夏县| 锡林浩特市| 怀安县| 报价| 芮城县| 鹤岗市| 明溪县| 资溪县|