千山鳥飛絕 萬徑人蹤滅
          勤練內功,不斷實踐招數。爭取早日成為武林高手

          在實現程序的修改模塊時,要在頁面端檢查用戶是否修改過數據,以便提醒用戶及時保存修改后的數據。
          實現要求:
            判斷用戶是否修改了輸入的內容,要能判斷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//有變化
             //改變控件的顯示和功能狀態
          }


          做了適當的修改。最后在button里面onclick直接調用

           

               var ha_last=new Array;//定義一個全局的空對象,存放所有的初始值。
                      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);}//根本頁面需要設置type的值和對象屬性
                          }
                      }
                      window.onload=ha_get;//綁定讀取初始值的函數
                      function ha_checkin(action)//檢查新的輸入值和初始值是否相等。返回判斷結果。true為沒有發生修改,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);}//根本頁面需要設置type的值和對象屬性。
                              }
                              if (ha_now.toString()==ha_last.toString())//沒修改
                              {
                                  alert("沒有修改");
                                  return false;
                              }
                              else//有修改
                              {
                                  //  return true;
                              }
                          }
                      }

           


           
                  

           

           

          posted on 2009-11-23 17:36 笑口常開、財源滾滾來! 閱讀(563) 評論(0)  編輯  收藏 所屬分類: jquery
           
          主站蜘蛛池模板: 石首市| 九江县| 鹿邑县| 上栗县| 鱼台县| 洞口县| 海门市| 西和县| 昭觉县| 葵青区| 喜德县| 凤翔县| 苗栗市| 嘉荫县| 黄平县| 康马县| 凉山| 崇义县| 苍溪县| 潼南县| 积石山| 库尔勒市| 上高县| 宁国市| 虎林市| 应用必备| 道真| 绥阳县| 万年县| 微博| 萨嘎县| 渑池县| 托里县| 江川县| 南平市| 宣恩县| 霍城县| 阿巴嘎旗| 什邡市| 饶阳县| 寿光市|