JavaScript验证客户端提交数据的小程序[转]
2005-04-19 02:45
381 查看
8月份做的更新 [回复]
/*
文 件 名:validate_form.js
函 数 名:validateForm
函数功能:验证提交的表单
调用方法:<onSubmit="return validateForm(this.formElementName,'validateType','validateCondition')">,参数长度不限
变量释义:
变量名含义
i,j循环计数变量
vc_min,vc_max最小值、最大值
vObjvalidate object,要验证的对象
vTypevalidate type,验证类型
vConvalidate condition,验证条件
eNumerror number,错误数量
eMsgerror message,错误信息
cItemNumchecked item number,选中项目数
fErrMsgfinal error message,最终显示给用户看的错误信息
reregular expression,正则表达式
验证类型:
代码含义
FitRegEx必须完全匹配“用户自定义的正则表达式”
AntiRegEx不能出现“匹配用户自定义的正则表达式的字串”
NotBlank不可为空
IsNumeric数字
IsInt整数
IsEmail邮件地址
IsPlainText纯文本,不能包含HTML代码
LengthRange字符长度范围
NumericRange数字大小范围
IsEqualTo确认项(如密码)和第一次输入的是否相等
CheckLimit选中多少项
SelectValid选中有效项
作 者:覃健祥,chin@blogchina.com
最后编辑:2004年9月24日
*/
function validateForm() {
var i, j, vObj, vType, vCon, eNum = 0, eMsg = '', cItemNum = 0, fErrMsg='', re;
var args = validateForm.arguments;
for (i = 0; i < (args.length-2); i += 3)
{
vObj = args[i];
vType = args[i+1];
vCon = args[i+2];
switch (vType)
{
case 'FitRegEx':
re = vCon;
if ( vObj.value.search( re ) != 0 )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'的值不符合要求' );
}
break;
case 'AntiRegEx':
re = vCon;
if ( vObj.value.search( re ) >= 0 )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'的值不符合要求' );
}
break;
case 'NotBlank':
if ( vObj.value == '' )
{
eNum ++;
eMsg += genErrMsg(eNum,vObj,'没有填写');
}
break;
case 'IsNumeric':
if ( isNaN(vObj.value) ││ vObj.value == '' )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'不是数字' );
}
break;
case 'IsInt':
re = /^[0-9]+$/;
if ( vObj.value.search(re) != 0 ││ vObj.value.substring(0,1) == 0 )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'不是整数' );
}
break;
case 'IsEmail':
re = /^[a-zA-Z0-9_]+@[a-zA-Z0-9_]+/.[a-zA-Z0-9_]+$/;
if ( vObj.value.search(re) != 0 )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'不是有效Email地址' );
}
break;
case 'IsPlainText':
re = /<[a-zA-Z]+[^>]*>/;
if ( vObj.value.search(re) >= 0 )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'不是纯文本,含有HTML标签' );
}
break;
case 'LengthRange':
vc_min = parseFloat( vCon.substring( 0,vCon.indexOf("to") ) );
vc_max = parseFloat( vCon.substring( vCon.indexOf("to")+2 ) );
if ( vObj.value.length < vc_min ││ vObj.value.length > vc_max )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'的长度不在指定范围内' );
}
break;
case 'NumericRange':
vc_min = parseFloat( vCon.substring( 0,vCon.indexOf("to") ) );
vc_max = parseFloat( vCon.substring( vCon.indexOf("to")+2 ) );
if ( vObj.value < vc_min ││ vObj.value > vc_max )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'的值不在指定范围内' );
}
break;
case 'IsEqualTo':
if ( vObj.value != vCon.value )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'和第一次输入的不相等' );
}
break;
case 'CheckLimit':
vc_min = parseFloat( vCon.substring( 0,vCon.indexOf("to") ) );
vc_max = parseFloat( vCon.substring( vCon.indexOf("to")+2 ) );
if ( vc_max == -1 )//vc_max=-1表示没有上限
{
vc_max = vObj.length;
}
for (j = 0;j < vObj.length;j ++)
{
if ( vObj[j].checked )
{
cItemNum ++;
}
}
if ( cItemNum < vc_min ││ cItemNum > vc_max )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj[0],'的选中项目数不在指定范围内' );
}
break;
case 'SelectValid':
if ( vObj.value == '' )
{
eNum ++;
eMsg += genErrMsg(eNum,vObj,'没有选中有效项');
}
break;
}
}
if ( eNum )
{
fErrMsg = '抱歉,您提交的数据存在' + eNum + '处错误:/n';
fErrMsg += '==============================/n';
fErrMsg += eMsg;
fErrMsg += '==============================/n';
fErrMsg += '/n请修改后再提交,谢谢!';
alert( fErrMsg );
return false;
}
}
function genErrMsg(eTimes,vObj,eType)
{
eMsg = eTimes + '. [ ' + vObj.title + ' ] ' + eType + '。/n';
return eMsg;
}
来源 http://blog.blogchina.com/article_22.56652.html
相关文章推荐
- JavaScript通过RegExp实现客户端验证处理程序
- Javascript 表单验证对象控件 + ajax简单验证重复项与ajax提交数据
- 定义一个网站全局的 HttpModule ,用来验证客户端是否重复提交数据和是否跨站点提交数据
- Web_JavaScript_JS客户端表单数据验证;
- 一个用javascript编写的表单提交的例子(包括用正则表达式对数据进行验证)
- JavaScript通过RegExp实现客户端验证处理程序
- JavaScript验证表单数据,并提交给Java后台
- 使用Javascript实现客户端数据验证
- 基于JavaScript实现带数据验证和复选框的表单提交
- javascript 网站注册页面的客户端验证程序
- JAVASCRIPT 客户端验证数据的合法性代码(正则)第1/2页
- 客户端提交MR程序job的流程
- 使用Jquery提交Json格式的数据到Asp.net程序的另类做法.
- 织梦做在线报名提交表单时出现错误数据校验不对,程序返回
- android客户端提交数据到服务器中文乱码三种解决方案
- OSChina_IOS版客户端笔记(四)_程序数据、缓存的管理
- 解如何利用 XML 和 JavaScript Object Notation 在 Ajax 客户端和 Java 服务器之间传输数据。
- 【ASP.NET基础】客户端、服务器端的数据验证 + CKEditer
- 如何使用JavaScript和正则表达式进行数据验证
- ASP.NET AJAX客户端编程之旅(三)——让JavaScript和C#无障碍沟通:数据类型自动转换&序列化