当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 自己的js工具_Form 封装

Javascript
Javascript的匿名函数小结
js跟随滚动条滚动浮动代码
js监听表单value的修改同步问题,跨浏览器支持
JavaScript 模拟用户单击事件
javascript 获取表单file全路径
让IE8支持DOM 2(不用框架!)
javascript控制frame,iframe的src属性代码
JavaScript 井字棋人工智能实现代码
javascript showModalDialog模态对话框使用说明
JavaScript 学习笔记(四)
JavaScript 学习笔记(五)
JavaScript 学习笔记(六)
JavaScript 学习笔记(七)字符串的连接
js下用gb2312编码解码实现方法
javascript 面向对象技术基础教程
javascript eval和JSON之间的联系
JavaScript 数组循环引起的思考
url 特殊字符 传递参数解决方法
jQuery animate(滑块滑动效果代码)
用javascript做一个小游戏平台 (二) 游戏选择器

Javascript 中的 自己的js工具_Form 封装


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 298 ::
收藏到网摘: n/a

web工程,需要不断的与表单打交道,每次我们都需要对表单进行一下必要的验证,以减小或阻止某些脏数据,这个时候如果我们把一些常用的表单操作组装成类,日后用的话就方便多了
复制代码 代码如下:

/**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("&");
}
};