自己的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移除数组元素减少长度的方法
Sep 05 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
Sep 29 Javascript
jQuery Ajax()方法使用指南
Nov 19 Javascript
深入理解JavaScript内置函数
Jun 03 Javascript
jqPlot jQuery绘图插件的使用
Jun 18 Javascript
Jquery Easyui表单组件Form使用详解(30)
Dec 19 Javascript
JS实现Ajax的方法分析
Dec 20 Javascript
实现div滚动条默认最底部以及默认最右边的示例代码
Nov 15 Javascript
详解Node.js读写中文内容文件操作
Oct 10 Javascript
详解element-ui日期时间选择器的日期格式化问题
Apr 08 Javascript
vue2.x数组劫持原理的实现
Apr 19 Javascript
微信小程序实现聊天室功能
Jun 14 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绘制圆形的方法
2015/01/24 PHP
详解PHP PDO简单教程
2019/05/28 PHP
特殊字符、常规符号及其代码对照表
2006/06/26 Javascript
jQuery 入门讲解1
2009/04/15 Javascript
jQuery autocomplete插件修改
2009/04/17 Javascript
JavaScript Cookie 直接浏览网站分网址
2009/12/08 Javascript
JQuery下关于$.Ready()的分析
2009/12/13 Javascript
JQuery动态创建DOM、表单元素的实现代码
2011/08/09 Javascript
jquery实现的让超出显示范围外的导航自动固定屏幕最顶上
2011/09/22 Javascript
jquery动态增加text元素以及删除文本内容实例代码
2013/07/01 Javascript
javascript获取xml节点的最大值(实现代码)
2013/12/11 Javascript
js实现iframe跨页面调用函数的方法
2014/12/13 Javascript
JS自定义选项卡函数及用法实例分析
2015/09/02 Javascript
基于jQuery实现复选框是否选中进行答题提示
2015/12/10 Javascript
JS事件绑定的常用方式实例总结
2019/03/02 Javascript
vue页面引入three.js实现3d动画场景操作
2020/08/10 Javascript
使用webpack5从0到1搭建一个react项目的实现步骤
2020/12/16 Javascript
[02:20]DOTA2中文配音宣传片
2013/05/22 DOTA
python新手经常遇到的17个错误分析
2014/07/30 Python
python中使用mysql数据库详细介绍
2015/03/27 Python
浅析Python中的多条件排序实现
2016/06/07 Python
Python创建xml文件示例
2017/03/22 Python
Python Web框架之Django框架文件上传功能详解
2019/08/16 Python
Python Excel vlookup函数实现过程解析
2020/06/22 Python
python模块内置属性概念及实例
2021/02/18 Python
五款漂亮的纯CSS3动画按钮的实例教程
2014/11/21 HTML / CSS
求职信的七个关键技巧
2014/02/05 职场文书
大学军训感言800字
2014/02/27 职场文书
保管员岗位职责
2015/02/14 职场文书
父亲节寄语大全
2015/02/27 职场文书
房地产项目合作意向书
2015/05/08 职场文书
无保留意见审计报告
2015/06/05 职场文书
生产车间管理制度
2015/08/04 职场文书
MySQL学习总结-基础架构概述
2021/04/05 MySQL
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js
Mysql表数据比较大情况下修改添加字段的方法实例
2022/06/28 MySQL