Posted in Javascript onAugust 21, 2009
/**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("&"); } };
自己的js工具_Form 封装
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@