Sealyu

          --- 博客已遷移至: http://www.sealyu.com/blog

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

          本文轉自:http://info.codepub.com/2008/09/info-22582.html

          原文如下:

          使用場合:當某個頁面數據修改時,需要執行某些操作時   
          在頁面的body加載事件(onload)中加上initFileds()就可以記錄頁面的初始數據
          在需要判斷頁面數據是否改變時調用checkModification()方法就可判斷數據是否改變
          返回值為true就是已經改變
          返回值為false就是沒有改變
             
              // 頁面編輯數據
              var inputsData;
              var textareasData;
              var selectsData;
              // 記錄下表單中的原始值
              function initFileds() {
                  var inputs = document.getElementsByTagName("input");
                  var textareas = document.getElementsByTagName("textarea");
                  var selects = document.getElementsByTagName("select");
                  inputsData = new Array(inputs.length);
                  for (var i=0;i<inputs.length;i++) {
                      inputsData[i] = inputs[i].value;
                      if (inputs[i].type=="radio") {
                          inputsData[i]=inputs[i].checked;
                      }
                  }
                  textareasData = new Array(textareas.length);
                  for (var i=0;i<textareas.length;i++) {
                      textareasData[i] = textareas[i].value;
                  }
                  selectsData = new Array(selects.length);
                  for (var i=0;i<selects.length;i++) {
                      selectsData[i] = selects[i].value;
                  }
              }
              /*
               * 判斷表單中值是否被修改了
               * submitCommand 表單有改動時,執行的javascript代碼
               */
              function checkModification(submitCommand) {
                  var inputs = document.getElementsByTagName("input");
                  var textareas = document.getElementsByTagName("textarea");
                  var selects = document.getElementsByTagName("select");
                  var hasBeenChanged = false;
                  for (var i=0;i<inputs.length;i++) {
                      if (inputs[i].type=="radio"&&(inputs[i].checked!=inputsData[i])) {
                          hasBeenChanged = true;
                          inputsData[i]=inputs[i].checked;
                      }
                      if (inputs[i].type!="radio"&&inputsData[i]!=inputs[i].value) {
                       if(inputs[i].name!="actionType"){
                           hasBeenChanged = true;
                          }
                          inputsData[i]=inputs[i].value;
                      }
                  }
                  for (var i=0;i<textareas.length;i++) {
                      if (textareasData[i]!=textareas[i].value) {
                          hasBeenChanged = true;
                          textareasData[i]=textareas[i].value;
                      }
                  }
                  for (var i=0;i<selects.length;i++) {
                      if (selectsData[i]!=selects[i].value) {
                          hasBeenChanged = true;
                          selectsData[i]=selects[i].value;
                      }
                  }
                   if (hasBeenChanged&&confirm("數據已經改變,是否保存?")) {
                       eval(submitCommand);
                   }
              }
          posted on 2009-05-13 10:02 seal 閱讀(688) 評論(0)  編輯  收藏 所屬分類: Javascript
          主站蜘蛛池模板: 长宁区| 阳春市| 清苑县| 勃利县| 衢州市| 托克逊县| 曲靖市| 紫阳县| 永平县| 大埔区| 乌什县| 台湾省| 武鸣县| 铜梁县| 莱芜市| 三河市| 新平| 浪卡子县| 宁乡县| 克什克腾旗| 桂东县| 神池县| 桃园县| 龙门县| 锡林郭勒盟| 车致| 政和县| 定边县| 隆尧县| 巩义市| 五指山市| 托克托县| 郁南县| 渝中区| 安国市| 廊坊市| 资讯 | 湾仔区| 色达县| 九寨沟县| 荣昌县|