自己的js工具_Form 封装


Posted in Javascript onAugust 21, 2009
/**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 相关文章推荐
PNG背景在不同浏览器下的应用
Jun 22 Javascript
基于JQuery的asp.net树实现代码
Nov 30 Javascript
jqTransform form表单美化插件使用方法
Jul 05 Javascript
调试JavaScript中正则表达式中遇到的问题
Jan 27 Javascript
JavaScript简单实现弹出拖拽窗口(二)
Jun 17 Javascript
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
Dec 26 Javascript
JS图片压缩(pc端和移动端都适用)
Jan 12 Javascript
js遮罩效果制作弹出注册界面效果
Jan 25 Javascript
Angular2.js实现表单验证详解
Jun 23 Javascript
vue2里面ref的具体使用方法
Oct 27 Javascript
vue里input根据value改变背景色的实例
Sep 29 Javascript
vue实现点击按钮切换背景颜色的示例代码
Jun 23 Javascript
javascript 面向对象编程基础 多态
Aug 21 #Javascript
javascript 面向对象编程基础:继承
Aug 21 #Javascript
javascript 面向对象编程基础:封装
Aug 21 #Javascript
javascript arguments 传递给函数的隐含参数
Aug 21 #Javascript
javascript 自定义事件初探
Aug 21 #Javascript
IE 下的只读 innerHTML
Aug 21 #Javascript
JS 控制CSS样式表
Aug 20 #Javascript
You might like
桌面中心(二)数据库写入
2006/10/09 PHP
php中3des加密代码(完全与.net中的兼容)
2012/08/02 PHP
PHP中的事务使用实例
2015/05/26 PHP
什么是DOM(Document Object Model)文档对象模型
2012/03/05 Javascript
在js文件中如何获取basePath处理js路径问题
2013/07/10 Javascript
jquery基础教程之数组使用详解
2014/03/10 Javascript
JavaScript 异常处理 详解
2015/02/06 Javascript
如何利用模板将HTML从JavaScript中抽离
2016/10/08 Javascript
微信小程序 WebSocket详解及应用
2017/01/21 Javascript
Bootstrap表单控件学习使用
2017/03/07 Javascript
nodejs实现大文件(在线视频)的读取
2020/10/16 NodeJs
Vue实现点击时间获取时间段查询功能
2020/08/21 Javascript
Vuex mutitons和actions初使用详解
2019/03/04 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
2019/04/04 Javascript
[43:58]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第二局
2016/02/27 DOTA
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
Python3 SSH远程连接服务器的方法示例
2018/12/29 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
Python字典中的值为列表或字典的构造实例
2019/12/16 Python
PyCharm无法引用自身项目解决方式
2020/02/12 Python
python爬虫要用到的库总结
2020/07/28 Python
python 带时区的日期格式化操作
2020/10/23 Python
详解Python中string模块除去Str还剩下什么
2020/11/30 Python
ProBikeKit英国:在线公路自行车之家
2017/02/10 全球购物
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
大学生专业个人学习的自我评价
2013/10/26 职场文书
俄语专业毕业生推荐信
2013/10/28 职场文书
展会邀请函范文
2014/01/26 职场文书
期中考试后的反思
2014/02/08 职场文书
户外活动总结范文
2014/04/30 职场文书
优秀教导主任事迹材料
2014/05/09 职场文书
本科毕业生自荐信
2014/05/26 职场文书
三月雷锋月活动总结
2014/07/03 职场文书
社会实践活动总结范文
2014/07/03 职场文书
《海上日出》教学反思
2016/02/23 职场文书
Java 语言中Object 类和System 类详解
2021/07/07 Java/Android