通用表单验证函数

yan2011372baby

yan2011372baby

2016-01-29 11:37

通用表单验证函数,通用表单验证函数
不管是动态网站,还是其它B/S结构的系统,都离不开表单
表单做为客户端向服务器提交数据的载体担当相当重要的角色.
这就引出了一个问题,提交的数据合法吗?摆在我们面前的问题就是验证这些数据
保证所提交的数据是合法的.所以,我们写了一个大堆的验证函数.当我们开始新的一个
项目的开发时,我们又得写一大堆的验证函数,然后再调试这一大堆的函数...

本文将介绍一种方法来提高我的代码的可重用性,提高我们的开发效率.

个人以为表单的验证应该包含两部分:
第一,判断用户输入的数据是否合法.
第二,提示用户你的数据为什么是不合法的.

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com)

所以,我们的通用表单验证函数要实现的功能就是:
第一,取得用户输入的数据GetValue(el)
第二,验证用户的数据CheckForm(oForm)
IE支持自定义属性,这就是这个通用函数实现的基础
我们可以在表单元素上加入描述自身信息的属性.有点像XML吧.
check属性:该属性用于存储数据合法性的正则表达式.
warning属性:该性性用于存储出错误提示信息.
第三,返回有误的表单提示GoBack(el)
这三个步骤的触发事件是onsubmit,记住是return CheckForm(this)
搞错了就全功尽弃了 :)
<form onsubmit="return CheckForm(this)"

写到这里,整体框架就出来了,通过取得表单元素的check属性,取得字符串,构建正则表达式.再验证其值.如果通过验证就提交,如是数据不合法则取得表单元素的warning属性,产生提示信息.并返回到该表单元素.整个的框架也比较简单.
我们要做的就是写好正则表达式!

接下来我们来分析一下所有的表单元素
按其共性,我们将它们分为三类
每类表单的特点不一样,我们的目标就是写出通用的.

1.文输入框Text
<input type="text" name="txt"
<input type="password" name="pwd"
<input type="hidden" name="hid"
<input type="file" name="myfile"
<textarea name="txts"</textarea
2.单多选框Choose
<input type="checkbox" name="c"
<input type="checkbox" name="c"
<input type="radio" name="r"
<input type="radio" name="r"
3.单多下拉菜单Select
<select name="sel"</select
<select name="sels" multiple</select


讲了一堆"大道理"太抽象了,代码更有说服力!

<script language="JavaScript"
<!--
////////////////////////////////////////////////////////////////////////////////
/*
*--------------- 客户端表单通用验证CheckForm(oForm) -----------------
* 功能:通用验证所有的表单元素.
* 使用:
* <form name="form1" onsubmit="return CheckForm(this)"
* <input type="text" name="id" check="^S+$" warning="id不能为空,且不能含有空格"
* <input type="submit"
* </form
* 注意:写正则表达式时一定要小心.不要让"有心人"有空子钻.
* 已实现功能:
* 对text,password,hidden,file,textarea,select,radio,checkbox进行合法性验证
* 待实现功能:把正则表式写成个库.
*--------------- 客户端表单通用验证CheckForm(oForm) -----------------
*/
////////////////////////////////////////////////////////////////////////////////

//主函数
function CheckForm(oForm)
{
var els = oForm.elements;
//遍历所有表元素
for(var i=0;i<els.length;i++)
{
//是否需要验证
if(els[i].check)
{
//取得验证的正则字符串
var sReg = els[i].check;
//取得表单的值,用通用取值函数
var sVal = GetValue(els[i]);
//字符串-正则表达式,不区分大小写
var reg = new RegExp(sReg,"i");
if(!reg.test(sVal))
{
//验证不通过,弹出提示warning
alert(els[i].warning);
//该表单元素取得焦点,用通用返回函数
GoBack(els[i])
return false;
}
}
}
}

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com)

//通用取值函数分三类进行取值
//文本输入框,直接取值el.value
//单多选,遍历所有选项取得被选中的个数返回结果"00"表示选中两个
//单多下拉菜单,遍历所有选项取得被选中的个数返回结果"0"表示选中一个
function GetValue(el)
{
//取得表单元素的类型
var sType = el.type;
switch(sType)
{
case "text":
case "hidden":
case "password":
case "file":
case "textarea": retur

展开更多 50%)
分享

猜你喜欢

通用表单验证函数

电脑网络
通用表单验证函数

从阿里妈妈发现的几个不错的表单验证函数

Web开发
从阿里妈妈发现的几个不错的表单验证函数

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Javascript 验证表单插件

Web开发
Javascript 验证表单插件

JavaScript表单验证年龄

Web开发
JavaScript表单验证年龄

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

JavaScript验证整个表单

Web开发
JavaScript验证整个表单

通用结构复制函数

C语言教程 C语言函数
通用结构复制函数

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

最精致的日历式日期输入控件

最精致的日历式日期输入控件

调用IE内置打印组件完成web打印方案及例程

调用IE内置打印组件完成web打印方案及例程
下拉加载更多内容 ↓