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

Javascript
实现表格中行点击时的渐扩效果!
多图展示滑动过渡效果
弹出自适应图片大小的窗口弹出窗口根据图片大小,自动判断高和宽。
拖动Html元素集合 Drag and Drop any item
脚本吧 - 幻宇工作室用到js,超强推荐base.js
使用透明叠加法美化文件上传界面
JavaScript高级程序设计
对象的类型:本地对象(1)
如何实现表格中行点击时的渐扩效果!
使用button标签,实现三态图片按钮
根据分辩率调用不同的CSS.
Web版彷 Visual Studio 2003 颜色选择器
JS中简单的实现像C#中using功能(有源码下载)
js之WEB开发调试利器:Firebug 下载
jQuery中文入门指南,翻译加实例,jQuery的起点教程
jQuery 1.0.4 - New Wave Javascript(js源文件)
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
换肤测试程序js脚本
xWin之JS版(2-26更新)
共享自己写一个框架DreamScript

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 445 ::
收藏到网摘: 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("&");
}
};