转载:PHPSOHO
通用客户端表单验证函数修正版

主要内容:
一、用法简介:
二、类型定义:
三、程序文件:

历史:
2005.2.25
修改为通用客户端表单验证函数修正版
2004.12.21   
1.对整数的范围验证作了修改;
2.对Email的验证作了修改,以适应在帐号中带点的情况;
2004.12.20
1.从网上收集到此片文章的原型;
通用表单验证函数-再改进版

最后修改 2004.12.21

一、用法简介:
表单验证函数放在了functions.js文件里了,在你所需要做验证的网页文件里,包含该脚本文件。一般语法为:
<script type="text/javascript" src="./functions.js">
对于焦点失去验证,为表单控件的onBlur事件绑定相应的验证函数,用法如下:
整型   checkNumber()
浮点型 checkNumber()
字符串 checkString()
日期   checkDate()
邮箱   checkEmail()
示例 onBlur="checkNumber()"
对于表单提交验证,在表单提交前进行判断,用法如下:
if(checkForm('表单名称'))
{
  表单名称.submit();
  return true;
}
else
{
  return false;
}
也可以绑定表单onSubmit事件,用法如下:
onSubmit="return checkForm('表单名称')"

二、类型定义:

1、整型(int)
定义:
  valueType="int"
属性:
  objName   对象名称(字符串)
  mustInput 必输项(true/false)
  minInput  最小值(数字)
  maxInput  最大值(数字)
举例:
  <input type="text" name="test" valueType="int" objName="总载重吨" mustInput="true" maxInput="10000">

2、浮点型(float)
定义:
  valueType="float"
属性:
  objName   对象名称(字符串)
  mustInput 必输项(true/false)
  minInput  最小值(数字)
  maxInput  最大值(数字)
  decimalLen小数位数(数字)
举例:
  <input type="text" name="test" valueType="float" objName="运价" mustInput="true" maxInput="10000.50" decimalLen="2">

3、字符串(string)
定义:
  valueType="string"
属性:
  objName   对象名称(字符串)
  mustInput 必输项(true/false)
  stringLen 字符串长度(数字)
举例:
  <input type="text" name="test" valueType="string" objName="英文船名" mustInput="true" stringLen="100">

4、日期(date)
定义:
  valueType="date"
属性:
  objName   对象名称(字符串)
  mustInput 必输项(true/false)
举例:
  <input type="text" name="test" valueType="date" objName="开始日期" mustInput="true">
备注:
  日期现在只能校验的格式为(yyyy-mm-dd)

5、邮箱(email)
定义:
  valueType="email"
属性:
  objName   对象名称(字符串)
  mustInput 必输项(true/false)
举例:
  <input type="text" name="test" valueType="email" objName="邮箱" mustInput="true">

6、单选(radio)  暂没调试成功
定义:
  valueType="radio"
属性:
  objName   对象名称(字符串)
  mustSelect 必输项(true/false)
举例:
  <input type="radio" name="test" valueType="radio" objName="租船方式" mustSelect="true">
备注:
  对于同一组单选按钮,只需要定义第一个即可。

7、复选(checkbox) 暂没调试成功
定义:
  valueType="checkbox"
属性:
  objName   对象名称(字符串)
  minSelect 最小选择数(数字)
  maxSelect 最大选择数(数字)
举例:
  <input type="checkbox" name="test" valueType="checkbox" objName="爱好" minSelect="2" maxSelect="5">
备注:
  对于同一组复选按钮,只需要定义第一个即可。

8、下拉列表框(select)
定义:
  valueType="select"
属性:
  objName   对象名称(字符串)
  mustSelect 必输项(true/false)
举例1:
  <select name="test" valueType="select" objName="租船方式" mustSelect="true">
举例2:
<select name="test" valueType="select" objName="租船方式" mustSelect="true">
<option type="checkbox" name="test2" >请选择<option>
<option type="checkbox" name="test2" >3 <option>
<option type="checkbox" name="test2" >4 <option>
</select>
9、列表框(list)
定义:
  valueType="list"
属性:
  objName   对象名称(字符串)
  minSelect 最小选择数(数字)
  maxSelect 最大选择数(数字)
举例:
  <select name="test" valueType="list" objName="爱好" size =5 minSelect="2" maxSelect="5">

/*****************functions.js**********************/
/***检查表单所有元素***/
function checkForm(formName)
{var oForm=document.all(formName);var eles = oForm.elements;//var els//遍历所有表元素for(var i=0;i<eles.length;i++){//是否需要验证var sType=eles[i].valueType;if(sType){if(eles[i].mustInput!=null && eles[i].mustInput=="true"){ //els=eles[i].value;//els=trim(els);if(trim(eles[i].value)==""){if(eles[i].objName!=null){alert(eles[i].objName+" 不可以为空");}else{alert("该文本框为必输字段");}eles[i].focus();     event.returnValue=false;     return false;   }}switch(sType){//整数case "int":if(!validInt(eles[i])){event.returnValue=false;return false;}break;//小数case "float":if(!validFloat(eles[i])){ event.returnValue=false;return false;}break;//字符串case "string":if(!validString(eles[i])){event.returnValue=false;return false;}break;//日期case "date":if(!validDate(eles[i])){event.returnValue=false;return false;}break;//邮件case "email":if(!validEmail(eles[i])){event.returnValue=false;return false;}break;//单选按钮/*case "radio":if(!validRadio(eles[i])){event.returnValue=false;return false;}break;//复选按钮case "checkbox":if(!validBox(eles[i])){event.returnValue=false;return false;}break;*///下拉列表框case "select":if(!validSelect(eles[i])){event.returnValue=false;return false;}break;//列表框case "list":if(!validList(eles[i])){event.returnValue=false;return false;}break;
} }}event.returnValue=true;
return true;
}
/***验证是否为整数***/
function validInt(ele)
{
if(!isInt(ele.value))
{alert("请输入有效整数");ele.focus();return false;
}
else
{if(ele.maxInput!=null && !isNaN(ele.maxInput))if(parseInt(ele.maxInput)<parseInt(ele.value)){alert("您输入的 "+ convertNullToSpace(ele.objName)+" 值应该小于"+ele.maxInput);         ele.focus();return false;}      if(ele.minInput!=null && !isNaN(ele.minInput))if(parseInt(ele.minInput)>parseInt(ele.value)){alert("您输入的 "+ convertNullToSpace(ele.objName)+" 值应该大于"+ele.minInput);ele.focus();return false;}
}
return true;
}
/***判断是否为整数***/
function isInt(s)
{
var patrn=/^0|^[1-9]d*/;
if (!patrn.exec(s))
{return false;
}
else
{return true;
}
}
/***验证是否为小数***/
function validFloat(ele)
{if(isNaN(ele.value)){alert("请输入有效数字");ele.focus();return false;}
else
{if(ele.decimalLen!=null && !checkDecimal(ele.value,ele.decimalLen)){alert("您输入的 "+convertNullToSpace(ele.objName)+" 值小数位最多为"+ele.decimalLen+"个小数位");ele.focus();     return false;} if(ele.maxInput!=null && !isNaN(ele.maxInput))if(parseInt(ele.maxInput)<parseInt(ele.value)){alert("您输入的 "+ convertNullToSpace(ele.objName)+" 值应该小于"+ele.maxInput);           ele.focus();return false;}      if(ele.minInput!=null && !isNaN(ele.minInput))if(parseInt(ele.minInput)>parseInt(ele.value)){alert("您输入的 "+ convertNullToSpace(ele.objName)+" 值应该大于"+ele.minInput);ele.focus();return false;}
}
return true;
}
/***验证是否为字符串***/
function validString(ele)
{
if(ele.stringLen!=null && !isNaN(ele.stringLen))
{var value=new String(ele.value);if(value.length>parseInt(ele.stringLen)){alert("您输入的 "+convertNullToSpace(ele.objName)+" 字数最大长度为"+ele.stringLen);ele.focus();     return false;}
}
return true;
}
/***验证是否为日期格式***/
function validDate(ele)
{
if(!isDate(ele.value)&&ele.value!="")
{alert("请输入有效日期(yyyy-mm-dd)");ele.focus();return false;}
return true;
}
/***判断是否为日期***/
function isDate(str)
{
var r = str.match(/^(d{1,4})(-|/)(d{1,2})2(d{1,2})/);
if(r==null)
{return false;
}
var d= new Date(r[1], r[3]-1, r[4]);
if(!(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]))
{  return false;
}
return true;
}
/***验证是否为电子邮箱***/
function validEmail(ele)
{
if(!isEmail(ele.value))
{alert("请输入有效邮箱");ele.focus();return false;}
return true;
}
/***判断是否为邮箱***/
function isEmail(str)
{
if(str.match(/[w-.]+@{1}[w-]+.{1}w{2,4}(.{0,1}w{2}){0,1}/ig)!=str)return false;
elsereturn true;
}
/***验证单选按钮是否需要选择***/
function validRadio(ele)
{
//var rads = document.getElementsByName(ele.name);eval("var rads="+name+"."+ele.name);
var selectCount=0;
for(var i=0;i<rads.length;i++){if(rads[i].checked){selectCount++;}}if(ele.mustSelect!=null && ele.mustSelect)
{if(selectCount==0){alert("请选择"+convertNullToSpace(ele.objName));ele.focus();     return false;}
}
return true;
}
/***验证复选按钮是否需要选择***/
function validBox(ele)
{
//var rads = document.getElementsByName(ele.name);eval("var chks="+name+"."+ele.name);
var selectCount=0;
for(var i=0;i<chks.length;i++){if(chks[i].checked){selectCount++;}}
if(ele.minSelect!=null && !isNaN(ele.minSelect))
{if(selectCount<parseInt(ele.minSelect)){alert(convertNullToSpace(ele.objName)+"至少选择"+ele.minSelect+"项");ele.focus();     return false;}
}
if(ele.maxSelect!=null && !isNaN(ele.maxSelect))
{if(selectCount>parseInt(ele.maxSelect)){alert(convertNullToSpace(ele.objName)+"至多选择"+ele.maxSelect+"项");ele.focus();     return false;}
}
return true;
}
/***验证下拉列表框是否需要选择***/
function validSelect(ele)
{
//var rads = document.getElementsByName(ele.name);
if(ele.mustSelect!=null && ele.mustSelect)
{if(ele.selectedIndex==0){alert("请选择"+convertNullToSpace(ele.objName));ele.focus();     return false;}
}
return true;
}
/***验证列表框的选择项数***/
function validList(ele)
{
//var rads = document.getElementsByName(ele.name);var selectCount=0;
for(var i=0;i<ele.options.length;i++){if(ele.options[i].selected){selectCount++;}}if(ele.minSelect!=null && !isNaN(ele.minSelect))
{if(selectCount<parseInt(ele.minSelect)){alert(convertNullToSpace(ele.objName)+"至少选择"+ele.minSelect+"项");ele.focus();     return false;}
}
if(ele.maxSelect!=null && !isNaN(ele.maxSelect))
{if(selectCount>parseInt(ele.maxSelect)){alert(convertNullToSpace(ele.objName)+"至多选择"+ele.maxSelect+"项");ele.focus();     return false;}
}
return true;
}
/***将NULL转化为空格,用于显示对象名称***/
function convertNullToSpace(paramValue)
{if(paramValue==null)return "";else return paramValue;
}
/***检查小数位数***/
function checkDecimal(num,decimalLen)
{var len = decimalLen*1+1;if(num.indexOf('.')>0){num=num.substr(num.indexOf('.')+1,num.length-1);  if ((num.length)<len)
{return true;}
else
{return false;}}return true;
}
/***去除空格***/
function trim(str)
{
if (str.length > 0)
{while ((str.substring(0,1) == " ") && (str.length > 0)) { str =str.substring(1,str.length); } while (str.substring(str.length-1,str.length) == " ") { str = str.substring(0,str.length-1); }}return str;
}

通用客户端表单验证函数修正版相关推荐

  1. 通用客户端表单验证函数修正版(zz)

    通用客户端表单验证函数修正版 主要内容: 一.用法简介: 二.类型定义: 三.程序文件: 历史: 2005.2.25  修改为通用客户端表单验证函数修正版 2004.12.21     1.对整数的范 ...

  2. JavaScript - JavaScript通用表单验证函数(实例)

    Check.js    JS函数文件 /* *--------------- 客户端表单通用验证CheckForm(oForm) ----------------- * 功能:通用验证所有的表单元素. ...

  3. JS通用表单验证函数

    Check.js   JS函数文件 /*  *--------------- 客户端表单通用验证CheckForm(oForm) -----------------  * 功能:通用验证所有的表单元素 ...

  4. JavaScript通用表单验证函数

    表单定义: < form name = " form1 "  action = ""  style = " behavior:url('form ...

  5. 表单验证-通用表单验证大全/通用表单验证函数收集

    表单验证-通用表单验证大全/通用表单验证函数收集_Web设计论坛 文章来源:IT人才网(http://www.ad0.cn) Javascript表单验证函数大全: 复制内容到剪贴板代码: <s ...

  6. 客户端表单验证_客户端的表单验证

    客户端表单验证 在客户端进行表单验证是必不可少的-它可以节省时间和带宽,并为您提供更多选择,以指出用户填写表单时出错的地方. 话虽如此,我并不是说您不需要服务器端验证. 访问您网站的用户可能使用旧的浏 ...

  7. (Ajax)表单验证 函数包http://hi.baidu.com/zeronet/blog/item/e8809654e112431e3b293569.html

    2007年05月21日 星期一 19:37 /***************************************************************************** ...

  8. Validator.js 很好用的客户端表单验证

    1: /************************************************* 2: Validator v1.05 3: code by 我佛山人 4: wfsr@msn ...

  9. 经常用到的JS 表单验证函数

    //邮件校验 //邮件校验//通过校验返回ture,否则返回falsefunction isEmail(emailStr) {if (emailStr.length == 0) {return fas ...

最新文章

  1. linux 终端界面显示 中文乱码或方块
  2. OpenTTD 1.9.0-beta3 发布,开源模拟经营游戏
  3. C和指针之字符串简单实现 strcpy、strcat、strstr函数
  4. 勒索病毒如何防治?看阿里云双拳出击不留隐患
  5. python的JSON模块和OS模块
  6. php什么版本好玩_PHP各种版本区别对比详解
  7. Java Swing Action 动作
  8. Dreamweaver网页课设做家乡网站
  9. 在html中生成动态表格数据,JavaScript实现网页动态生成表格
  10. android 时钟旋转动画,抖音上超火的时间轮盘时钟轮盘八卦太极动态壁纸软件分享安卓苹果都可以设置!...
  11. 宏定义语句的 GPBCON 、GPBDAT、GPBUP 地址(老师布置的作业,没接触过,不懂,求大神解答,万分感谢)
  12. ORA-12505, TNS:listener does not currently know of SID given in connect descript 错误 更改方法
  13. 乱炖“简书交友”数据之代码(1)
  14. 教你视频批量剪辑制作画中画效果
  15. 云计算优势与风险并存 安全是首要问题
  16. HTML5视频标签 video 的 poster 属性
  17. 如何做数据竞赛·优秀案例学习(DC03)
  18. java基于springboot足球联赛管理系统
  19. 笔记36 笨办法学python练习43面向对象OOP的文字理解(一)
  20. 51单片机如何延时1s,让LED灯闪烁

热门文章

  1. 电脑只有一个c盘怎么办_电脑的C盘快满了怎么办
  2. python绘图内容怎么保存_将绘图保存到图像文件,而不是使用Matplotlib显示 - python...
  3. mysql性能调优快捷键_mysql优化篇
  4. 二叉树的深度优先搜索c语言,C语言 二叉树按层打印、深度优先遍历、二叉树是否对称...
  5. win2003服务器通过ipsec做防火墙的配置方法
  6. Golang结构体struct的使用(结构体嵌套, 匿名结构体等)
  7. 迷途の荣耀 Chapter Ⅱ
  8. 批量删除文件名中的相同文字
  9. 小白如何学习大数据开发,大数据学习路线是怎样的?
  10. 如何进行网站的安全测试