手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >自己的js工具_Form 封装
自己的js工具_Form 封装
摘要:复制代码代码如下:/**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("&");

}

};

【自己的js工具_Form 封装】相关文章:

自适应图片大小的弹出窗口

网页制作常用Javascript语句

JS或jQuery获取ASP.NET服务器控件ID的方法

JavaScript中toString()方法的使用详解

Sequelize中用group by进行分组聚合查询

JavaScript的Backbone.js框架的一些使用建议整理

JavaScript function函数种类详解

理解javascript封装

日期函数扩展类Ver0.1.1

JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法

精品推荐
分类导航