欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

自己的js工具_Form 封装

程序员文章站 2023-12-04 16:13:05
复制代码 代码如下:/**form对象 封装了常用表单操作, form.ischinese(str);验证str是否为中文 form.urlencode(str);url编码 form.getform...
复制代码 代码如下:

/**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