读书人

打包自己的js工具_Form

发布时间: 2012-11-23 00:03:43 作者: rapoo

封装自己的js工具_Form

web工程,需要不断的与表单打交道,每次我们都需要对表单进行一下必要的验证,以减小或阻止某些脏数据,这个时候如果我们把一些常用的表单操作组装成类,日后用的话就方便多了

===================================

/**Form对象
封装了常用表单操作,
Form.isChinese(str);验证str是否为中文
Form.urlEncode(str);url编码
Form.getFormElements(formid); 获取表单的元素数组
最常用的方法
Form.getForm(formid); 获取表单的数据字符串
*/

var Form=function(){   //中文   this.isChinese=function(str){   return /[\u4e00-\u9fa5]/.test(str);   }   //非字母数字下划线   this.isSpecial=function(str){   return /\W/.test(str);   }   //地址编码   this.urlEncode=function(str){   return encodeURI(encodeURI(str));   }   //密码输入等级,最大5级   this.checkLevel=function(str){   var len=str.length;   var sLen=str.match(/\W+/g).join('').length;   var r1=len<8?1:len>8&&len<14?2:len>14&&len<21?3:len>21&&len<28?4:5;   var r2=sLen>1&&sLen<2?1:sLen>2&&sLen<4?2:sLen>4&&sLen<6?3:sLen>6&&sLen<8?4:5;   return Math.ceil((r1+r2)/2);   }   //获取表单内部元素   this.getFormElements=function(form){   var elements=[];   var params= form.elements;   for(var i=0;i<params.length;i++){   var param=params[i];   var type=param.type;   if(type!=""&&type!="button"&&type!="reset" && type!="submit"){//非按钮,非图片域   elements.push(param);   }   }   return elements;   }   /*获取表单数据  1>非空验证  2>中文加密,服务端用utf-8解密  form's id ,选项格式如下  var opts={nameIdError:"表单元素必须有name或id",valueError:"值为空"};  @result: 为请求字符串格式, 如?query=abc  用法:  var opts={nameIdError:"name id error",valueError:"value error"};  try{  var result = Form.getForm(form,opts);  }catch(e){  alert(e.message);  e.target.focus();  return;  }  alert(result);  */  this.getForm=function(form,options){   var defNameErr="表单元素必须有name或id";   var defValueErr="值为空";   var params=[];//参数数组   var err={};//异常对象   var elements=this.getFormElements(form);   for(var i=0;i<elements.length;i++){   var element=elements[i];   var value=element.value;   var name=element.name?element.name:element.id;   if(!name){   err["target"]=element;   defNameErr+="["+element+"]";   nameIdError+="["+element+"]";   err["message"]=!options?defNameErr:options.nameIdError?options.nameIdError:defNameErr;   }else if(!value){   err["target"]=element;   defValueErr+="["+element+"]";   options.valueError+="["+element+"]";   err["message"]=!options?defValueErr:options.valueError?options.valueError:defValueErr;   }   if(err["target"]){   throw err;   }   if(this.isChinese(value)){   value=this.urlEncode(value);   }   params.push(name+"="+value);   }   return params.join("&");   }   };  
?

 

读书人网 >JavaScript

热点推荐