自己的js工具_Form 封装_Javascript教程-查字典教程网
自己的js工具_Form 封装
自己的js工具_Form 封装
发布时间:2016-12-30 来源:查字典编辑
摘要:复制代码代码如下:/**Form对象封装了常用表单操作,Form.isChinese(str);验证str是否为中文Form.urlEnco...

复制代码 代码如下:

/**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教程学习
    热门Javascript教程学习
    编程开发子分类