自己的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 相关文章推荐
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
Nov 12 Javascript
JavaScript中“+”的陷阱深刻理解
Dec 04 Javascript
JavaScript window.location对象
Nov 14 Javascript
jQuery中Ajax的load方法详解
Jan 14 Javascript
js 去掉字符串前后空格实现代码集合
Mar 25 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
Aug 16 Javascript
浅谈ajax在jquery中的请求和servlet中的响应
Jan 22 jQuery
AngularJS动态添加数据并删除的实例
Feb 27 Javascript
Vue面试题及Vue知识点整理
Oct 07 Javascript
JavaScript队列结构Queue实现过程解析
Mar 07 Javascript
Jquery 获取相同NAME 或者id删除行操作
Aug 24 jQuery
js正则表达式简单校验方法
Jan 03 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实现HTML页面静态化的方法
2015/11/04 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
2018/08/15 PHP
jQuery下通过replace字符串替换实现大小图片切换
2012/05/22 Javascript
js简单实现HTML标签Select联动带跳转
2013/10/23 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
2014/09/13 Javascript
js+html5通过canvas指定开始和结束点绘制线条的方法
2015/06/05 Javascript
javascript格式化日期时间方法汇总
2015/06/19 Javascript
js小数运算出现多位小数如何解决
2015/10/08 Javascript
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
2017/05/13 jQuery
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
详解基于iview-ui的导航栏路径(面包屑)配置
2019/02/22 Javascript
vue 实现通过vuex 存储值 在不同界面使用
2019/11/11 Javascript
在Vue中获取自定义属性方法:data-id的实例
2020/09/09 Javascript
Vue 实例中使用$refs的注意事项
2021/01/29 Vue.js
python使用post提交数据到远程url的方法
2015/04/29 Python
Python 制作糗事百科爬虫实例
2016/09/22 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
梅尔频率倒谱系数(mfcc)及Python实现
2019/06/18 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
2020/03/30 Python
python中xlutils库用法浅析
2020/12/29 Python
CSS3中的元素过渡属性transition示例详解
2016/11/30 HTML / CSS
HTML5拖放功能_动力节点Java学院整理
2017/07/13 HTML / CSS
汇集了世界上最好的天然和有机美容产品:LoveLula
2018/02/05 全球购物
大四学年自我鉴定
2013/11/13 职场文书
医科大学毕业生自荐信
2014/02/03 职场文书
《九寨沟》教学反思
2014/04/08 职场文书
班长演讲稿范文
2014/04/24 职场文书
关于读书的演讲稿
2014/05/07 职场文书
2014年社区个人工作总结
2014/12/02 职场文书
股权转让协议书
2014/12/07 职场文书
银行实习推荐信
2015/03/27 职场文书
招商银行收入证明
2015/06/17 职场文书
职工食堂管理制度
2015/08/06 职场文书
党章学习心得体会2016
2016/01/14 职场文书
详解MySQL的内连接和外连接
2023/05/08 MySQL