zl程序教程

您现在的位置是:首页 >  后端

当前栏目

自己的js工具_Form封装

JS封装工具 自己 Form
2023-06-13 09:14:12 时间
复制代码代码如下:

/**Form对象
封装了常用表单操作,
Form.isChinese(str);验证str是否为中文
Form.urlEncode(str);url编码
Form.getFormElements(formid);获取表单的元素数组
最常用的方法
Form.getForm(formid);获取表单的数据字符串
*/
varForm=function(){
//中文
this.isChinese=function(str){
return/[\u4e00-\u9fa5]/.test(str);
}
//非字母数字下划线
this.isSpecial=function(str){
return/\W/.test(str);
}
//地址编码
this.urlEncode=function(str){
returnencodeURI(encodeURI(str));
}
//密码输入等级,最大5级
this.checkLevel=function(str){
varlen=str.length;
varsLen=str.match(/\W+/g).join("").length;
varr1=len<8?1:len>8&&len<14?2:len>14&&len<21?3:len>21&&len<28?4:5;
varr2=sLen>1&&sLen<2?1:sLen>2&&sLen<4?2:sLen>4&&sLen<6?3:sLen>6&&sLen<8?4:5;
returnMath.ceil((r1+r2)/2);
}
//获取表单内部元素
this.getFormElements=function(form){
varelements=[];
varparams=form.elements;
for(vari=0;i<params.length;i++){
varparam=params[i];
vartype=param.type;
if(type!=""&&type!="button"&&type!="reset"&&type!="submit"){//非按钮,非图片域
elements.push(param);
}
}
returnelements;
}
/*获取表单数据
1>非空验证
2>中文加密,服务端用utf-8解密
form"sid,选项格式如下
varopts={nameIdError:"表单元素必须有name或id",valueError:"值为空"};
@result:为请求字符串格式,如?query=abc
用法:
varopts={nameIdError:"nameiderror",valueError:"valueerror"};
try{
varresult=Form.getForm(form,opts);
}catch(e){
alert(e.message);
e.target.focus();
return;
}
alert(result);
*/
this.getForm=function(form,options){
vardefNameErr="表单元素必须有name或id";
vardefValueErr="值为空";
varparams=[];//参数数组
varerr={};//异常对象
varelements=this.getFormElements(form);
for(vari=0;i<elements.length;i++){
varelement=elements[i];
varvalue=element.value;
varname=element.name?element.name:element.id;
if(!name){
err["target"]=element;
defNameErr+="["+element+"]";
nameIdError+="["+element+"]";
err["message"]=!options?defNameErr:options.nameIdError?options.nameIdError:defNameErr;
}elseif(!value){
err["target"]=element;
defValueErr+="["+element+"]";
options.valueError+="["+element+"]";
err["message"]=!options?defValueErr:options.valueError?options.valueError:defValueErr;
}
if(err["target"]){
throwerr;
}
if(this.isChinese(value)){
value=this.urlEncode(value);
}
params.push(name+"="+value);
}
returnparams.join("&");
}
};