自己的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 相关文章推荐
用javascript实现页面打印的三种方法
Mar 05 Javascript
在Node.js应用中使用Redis的方法简介
Jun 24 Javascript
jQuery实现自动与手动切换的滚动新闻特效代码分享
Aug 27 Javascript
原生JS实现匀速图片轮播动画
Oct 18 Javascript
JS HTML图片显示Canvas 压缩功能
Jul 21 Javascript
JavaScript中this关键字用法实例分析
Aug 24 Javascript
微信小程序云开发之使用云存储
May 17 Javascript
JavaScript面向对象中接口实现方法详解
Jul 24 Javascript
微信小程序可滑动周日历组件使用详解
Oct 21 Javascript
解决Vue 移动端点击出现300毫秒延迟的问题
Jul 21 Javascript
通过实例解析js可枚举属性与不可枚举属性
Dec 02 Javascript
JS数组去重详情
Nov 07 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下目前为目最全的CURL中文说明
2010/08/01 PHP
PHP获取当前系统时间的方法小结
2018/10/03 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
走出JavaScript初学困境—js初学
2008/12/29 Javascript
Javascript 作用域使用说明
2009/08/13 Javascript
基于jquery的一个图片hover的插件
2010/04/24 Javascript
JS的replace方法详细介绍
2012/11/09 Javascript
JavaScript严格模式禁用With语句的原因
2014/10/20 Javascript
轻松学习jQuery插件EasyUI EasyUI实现树形网络基本操作(2)
2015/11/30 Javascript
Javascript HTML5 Canvas实现的一个画板
2020/04/12 Javascript
js带闹铃功能的倒计时代码
2016/09/29 Javascript
BootStrap中Table分页插件使用详解
2016/10/09 Javascript
实例分析nodejs模块xml2js解析xml过程中遇到的坑
2017/03/18 NodeJs
深入研究jQuery图片懒加载 lazyload.js使用方法
2017/08/16 jQuery
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
Python Mysql自动备份脚本
2008/07/14 Python
Web服务器框架 Tornado简介
2014/07/16 Python
python类继承用法实例分析
2015/05/27 Python
Python实现在线音乐播放器
2017/03/03 Python
python 获取网页编码方式实现代码
2017/03/11 Python
Python基于socket实现简单的即时通讯功能示例
2018/01/16 Python
python爬取各类文档方法归类汇总
2018/03/22 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
html5使用canvas实现弹幕功能示例
2017/09/11 HTML / CSS
美国珠宝网上商店:Jeulia
2016/09/01 全球购物
英国轻奢珠宝品牌:Astley Clarke
2016/12/18 全球购物
美国牛仔品牌:True Religion
2018/11/16 全球购物
总经理岗位职责
2013/11/09 职场文书
11月红领巾广播稿
2014/01/17 职场文书
《美丽的田园》教学反思
2014/03/01 职场文书
家庭贫困证明书(3篇)
2014/09/15 职场文书
2014年机关工会工作总结
2014/12/19 职场文书
初中数学课堂教学反思
2016/02/17 职场文书
Redis实现主从复制方式(Master&Slave)
2022/06/21 Redis