自己的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 相关文章推荐
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
Jan 11 Javascript
JS类定义原型方法的两种实现的区别评论很多
Sep 12 Javascript
MooBox 基于Mootools的对话框插件
Jan 20 Javascript
javascript数字格式化通用类 accounting.js使用
Aug 24 Javascript
Javascript中this的用法详解
Sep 22 Javascript
JavaScript的代码编写格式规范指南
Dec 07 Javascript
vuejs2.0实现一个简单的分页示例
Feb 22 Javascript
protractor的安装与基本使用教程
Jul 07 Javascript
Angular实现表单验证功能
Nov 13 Javascript
react-native使用leanclound消息推送的方法
Aug 06 Javascript
原生javascript如何实现共享onload事件
Jul 03 Javascript
JavaScript实现多层颜色选项卡嵌套
Sep 21 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
php实现webservice实例
2014/11/06 PHP
PHP实现的带超时功能get_headers函数
2015/02/10 PHP
Zend Framework实现将session存储在memcache中的方法
2016/03/22 PHP
php 生成Tab键或逗号分隔的CSV
2016/09/24 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
百度判断手机终端并自动跳转js代码及使用实例
2014/06/11 Javascript
bootstrap改变按钮加载状态
2014/12/01 Javascript
js读取csv文件并使用json显示出来
2015/01/09 Javascript
最新最热最实用的15个jQuery插件汇总
2015/07/05 Javascript
微信小程序 数组中的push与concat的区别
2017/01/05 Javascript
jquery中关于bind()方法的使用技巧分享
2017/03/30 jQuery
angularjs的select使用及默认选中设置
2017/04/08 Javascript
bootstrap table表格使用方法详解
2017/04/26 Javascript
Angularjs修改密码的实例代码
2017/05/26 Javascript
微信小程序实现动态显示和隐藏某个控件功能示例
2018/12/14 Javascript
javascript 设计模式之享元模式原理与应用详解
2020/04/08 Javascript
利用Python读取文件的四种不同方法比对
2017/05/18 Python
用Python实现读写锁的示例代码
2018/11/05 Python
在Python中使用Neo4j的方法
2019/03/14 Python
python3爬取torrent种子链接实例
2020/01/16 Python
python super函数使用方法详解
2020/02/14 Python
Python selenium如何打包静态网页并下载
2020/08/12 Python
python 如何实现遗传算法
2020/09/22 Python
超市促销实习自我鉴定
2013/09/23 职场文书
电子商务专业在校生实习自我鉴定
2013/09/29 职场文书
大学军训感言600字
2014/02/25 职场文书
机工车间主任岗位职责
2014/03/05 职场文书
社区交通安全实施方案
2014/03/22 职场文书
法制宣传日活动总结
2014/04/29 职场文书
2014中学教师节广播稿
2014/09/10 职场文书
工伤劳动仲裁代理词
2015/05/25 职场文书
python编写函数注意事项总结
2021/03/29 Python
Python 使用dict实现switch的操作
2021/04/07 Python
关于Nginx中虚拟主机的一些冷门知识小结
2022/03/03 Servers
MongoDB误操作后使用oplog恢复数据
2022/04/11 MongoDB