posts - 122,  comments - 25,  trackbacks - 0
          /*
          -------------------------------------------------------------------------------
          說明:JavaScript腳本,驗證表單中的數據項  begin
          -------------------------------------------------------------------------------
          */
          function checkForm(objFrm){
              
          var len = 0;
              len 
          = objFrm.elements.length;
              
          var i = 0;
              
          var objCheck;
              
          //文本框
              for(i = 0; i < len; i ++){
                  objCheck 
          = objFrm.elements[i];
                  
          if(objCheck.type =="text" && !f_checkTextValid(objCheck) ){
                      
          return false;
                  }
              }
              
          //下拉框
              for(i = 0; i < len; i ++){
                  objCheck 
          = objFrm.elements[i];
                  
          if(objCheck.type =="select-one" && !f_checkSelectValid(objCheck) ){
                      
          return false;
                  }
              }
              
          //時間段有效
              if( f_checkStartAndEndDate(objFrm) == falsereturn false;
                  
          return true;
          }

          function f_checkSelectValid(obj){
              
          //alert("check select");
              if(obj.options.length <= 0){
                  alert(
          "下拉選框無數據!");
                  
          return false;
              }
              
          return true;
          }

          function f_checkStartAndEndDate(frm){
              
          var len = frm.elements.length;
              
          if(len == null && len == 0return true;
              
          var i=0;
              
          var temp;
              
          var objCheck;
              
          var objStartDate;
              
          var objEndDate;
              
          //alert("start date period check");
              try{
                  
          for(i=0; i< len ; i++){
                      objCheck 
          = frm.elements[i];
                      temp 
          = objCheck.name;
                      
          if( temp.indexOf("startDate">0 ||temp.indexOf("beginDate")>0 )
                          objStartDate 
          = objCheck;
                      
          if( temp.indexOf("endDate"> 0 )
                          objEndDate 
          = objCheck;
                  }
                  
          //alert(objStartDate.value);
                  //alert(objEndDate.value);
                  if(objStartDate.value==null || objStartDate.value =="" || objStartDate.value ==null || objStartDate.value ==""){
                      
          return true;
                  }
                  
          return checkTwoDate(objStartDate.value, objEndDate.value);
                  
          //alert("end date period check");
              } catch(E){}
              
          return true;
          }

           
          function f_checkTextValid(obj){
              
          //不能為空
              if(obj.getAttribute("isNeed"!= null){
                  
          if(f_isNotNull(obj) == falsereturn false;
              }
              
          //不能超過長度
              if(obj.getAttribute("maxlength"!= null){
                  
          if(f_checkLength(obj) == falsereturn false;
              }
              
          var checkType ="";
              checkType 
          = obj.getAttribute("checkType");
              
          if(checkType==null||checkType==""return true;
              
          //
              if (checkType.indexOf("number">=0){
                  
          if(f_isNumber(obj) == false)  return false;
                  
          if(f_checkNumType(obj,checkType) == false)  return false;
              }
              
          //
              if (checkType.indexOf("positive">=0){
                  
          if(f_isNumber(obj) == false)  return false;
                  
          if(f_isPositive(obj)==false)  return false;
                  
          if(f_checkNumType(obj,checkType) == false)  return false;
              }

              
          if (checkType.indexOf("date">=0){
                  
          if(f_checkDate(obj) == falsereturn false;
              }

              
          return true;
          }


          function f_isNotNull(obj){
              
          if(obj.value == ""){
                  f_alert(obj, 
          " 不允許為空值!");
                  
          return false;
              }
              
          return true;
          }

          function f_isNumber(obj){
              
          if(isNaN(obj.value)){
                  f_alert(obj,
          " 應為數值類型");
                  
          return false;
              }
              
          return true;
          }

          function f_checkDate(obj) {
              
          if(checkDate(obj.value) ==false){
                  f_alert(obj,
          " 不是合法日期格式!");
                  
          return false;
              }
              
          return true;
          }

          function f_checkLength(obj){
              
          if(getTotalBytes(obj) > Math.abs( obj.getAttribute("maxlength") ) ){
                  f_alert(obj,
          " 超出長度限制!");
                  
          return false;
              }
              
          return true;
          }

          function  f_alert(obj,alertStr){
              
          var fielName = obj.getAttribute("fieldName");
              
          if(fielName == null)
                  fielName 
          = "";
              alert(fielName 
          + "\n" +alertStr);
              obj.select();
              obj.focus();
          }

          function f_checkNumType(obj, numType){
              
          //假設: 已經進行數字類型判斷
              var strTemp;
              
          var numpric;
              
          var numLen;
              
          var strArr;
              
          var defaultLen = 19;
              
          var defaultpric = 5;
              
          try{
                  
          if(numType == null|| numType ==""return f_checkNumLenPrec(obj,defaultLen, defaultpric);
                  
          if(numType.indexOf("("< 0 || numType.indexOf(")"< 0 ) return f_checkNumLenPrec(obj,defaultLen, defaultpric);
                  strTemp 
          = numType.substr( numType.indexOf("("+ 1 ,numType.indexOf(")"- numType.indexOf("("-1 );
                  
          if(strTemp == null||strTemp ==""return f_checkNumLenPrec(obj,defaultLen, defaultpric);
                  strArr 
          = strTemp.split(",");
                  numLen 
          = Math.abs( strArr[0] );
                  numpric 
          = Math.abs( strArr[1] );
                  
          return f_checkNumLenPrec(obj,numLen, numpric);
              }
          catch(e){
                  alert(
          "in f_checkNumType = " + e);
                  
          return f_checkNumLenPrec(obj,defaultLen, defaultpric);
              }
          }

          function f_checkNumLenPrec(obj, len, pric){
              
          var numReg;
              
          var value = obj.value;
              
          var strValueTemp, strInt, strDec;
              
          //alert(value + "=====" + len + "====="+ pric);
              try {
                  numReg 
          =/[\-]/;
                  strValueTemp 
          = value.replace(numReg, "");
                  strValueTemp 
          = strValueTemp.replace(numReg, "");
                  
          //整數
                  if(pric==0){
                      numReg 
          =/[\.]/;
                      
          //alert(numReg.test(value));
                      if(numReg.test(value) == true){
                          f_alert(obj, 
          "輸入必須為整數類型!");
                          
          return false;
                      }
                  }

                  
          if(strValueTemp.indexOf("."< 0 ){
                      
          //alert("lennth==" + strValueTemp);
                      if(strValueTemp.length >( len - pric)){
                          f_alert(obj, 
          "整數位不能超過"+ (len - pric) +"");
                          
          return false;
                      }
                  } 
          else{
                      strInt 
          = strValueTemp.substr( 0, strValueTemp.indexOf(".") );
                      
          //alert("lennth==" + strInt);
                      if(strInt.length >( len - pric)){
                          f_alert(obj, 
          "整數位不能超過"+ (len - pric) +"");
                          
          return false;
                      }

                      strDec 
          = strValueTemp.substr( (strValueTemp.indexOf(".")+1), strValueTemp.length );
                      
          //alert("pric==" + strDec);
                      if(strDec.length > pric){
                          f_alert(obj, 
          "小數位不能超過"+  pric +"");
                          
          return false;
                      }
                  }
                  
          return true;
              }
              
          catch(e){
                  alert(
          "in f_checkNumLenPrec = " + e);
                  
          return false;
              }
          }

          function f_isPositive(obj){
              
          var numReg =/[\-]/;
              
          if(numReg.test(obj.value) == true){
                  f_alert(obj, 
          "必須為正數!");
                  
          return false;
              }
              
          return true;
          }

          /*
          function selectedCheckboxCount(form)
          功能說明:對Form中選中的可選項計數
          參數說明:
          form:指定的表單
          */
          function selectedCheckboxCount(form){
              
          var length =0;
              
          var i=0;
              
          var count =0;
              eles 
          = form.elements;
              
          while(i<eles.length){
                  obj
          = eles.item(i);
                  
          //type = obj.attributes.item("type").nodeValue;
                  type = obj.type;
                  
          if(type == "checkbox"){
                      
          if(obj.checked){
                          count
          ++;
                      }
                  }
                  i
          ++;
              }
              
          return count;
          }

          //得到字節長度
          function getByteLen(str){
              
          var l = str.length;
              
          var n = l;
              
          for ( var i=0; i<l; i++ )
                  
          if ( str.charCodeAt(i) <0 || str.charCodeAt(i) >255 )
                      n
          =n+1;
              
          return n
          }

          /*
          說明:
          1.清除表格中的數據(0.0 和 0)
          2.如果cell中沒有數據,則自動加上一個空格
          3.清除空白行的checkbox
          參數:
          clearzero:是否清除"0"、"0.0",false不清除、true清除(默認為true)
          tablename:要清除的表格名字,默認為sortTable
          */
          function clear_table(clearzero,tablename){
              
          var tobject;
              
          if(tablename==null)
                  tobject
          =gmobj("sortTable");
              
          else
                  tobject
          =gmobj(tablename);
              
          //如果table未定義,則不進行過濾
              if(tobject==null)     return;
              
          //如果函數調用參數為空,表示要清除0、0.0;反之,不要清除0、0.0。
              var clear = (clearzero==null)?true:clearzero;
              
          //清除0、0.0,填補空格
              var rows = tobject.rows;
              
          var j=0;
              
          for(var i=0;i<rows.length;i++){
                  
          //取得第一個cell的屬性clear,如果為1,表示該行沒有數據,則清除該行所有數據
                  while(tobject.rows[i].cells[j] != null){
                      
          if(clear){
                          
          if(tobject.rows[i].cells[j].innerHTML==0 ||tobject.rows[i].cells[j].innerHTML==0.0||tobject.rows[i].cells[j].innerHTML=="")
                          tobject.rows[i].cells[j].innerText
          =" ";
                      } 
          else {
                          
          if (tobject.rows[i].cells[j].innerHTML=="")
                              tobject.rows[i].cells[j].innerText
          =" ";
                      }
                      j
          ++;
                  }
                  j
          =0;
              }
              
          return true;
          }

          function gmobj(mtxt)  /* Get object by object name */
          {
              
          if (document.getElementById) {
                  m
          =document.getElementById(mtxt);
              } 
          else if (document.all) {
                  m
          =document.all[mtxt];
              } 
          else if (document.layers) {
                  m
          =document.layers[mtxt];
              }
              
          return m;
          }

          posted on 2007-05-22 09:49 josson 閱讀(369) 評論(0)  編輯  收藏 所屬分類: web開發
          <2007年5月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 贵南县| 高阳县| 绥江县| 遂溪县| 福州市| 且末县| 南皮县| 汕头市| 赤峰市| 黄山市| 马龙县| 沙湾县| 南投市| 黄大仙区| 赤峰市| 北安市| 昌黎县| 鄂托克前旗| 诸暨市| 武义县| 长治县| 若羌县| 淮滨县| 射阳县| 会泽县| 常熟市| 锦屏县| 万全县| 荣昌县| 石柱| 巢湖市| 兴仁县| 大同县| 增城市| 嵩明县| 岳普湖县| 鄂托克前旗| 新津县| 泸定县| 都江堰市| 米林县|