首页 | 博客群 | 公社 | 专栏 | 论坛 | 图片 | 资讯 | 注册 | 帮助 | 博客联播 | 随机访问
C/C++/Perl/汇编/Java效率比较- -| 回首页 | 2004年索引 | - -查到最多的asp动态include文件代码

JavaScript验证表单函数(改进版)

                                      

本次升级博客公社的副产品。
/*
文 件 名:validate_form.js
函 数 名:validateForm
函数功能:验证提交的表单
调用方法: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;
}

【作者: 覃健祥】【访问统计:】【2004年10月9日 星期六 09:15】【注册】【打印

搜索

Google

Trackback

你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=142908

回复

- 评论人:23323   2007-08-15 11:20:25   

狗屎 狗屎 狗屎

- 评论人:匿名网友   2004-11-25 09:52:52   

狗屁不通,


- 评论人:匿名网友   2004-11-25 09:52:51   

狗屁不通,


- 评论人:匿名网友   2004-11-25 09:52:50   

狗屁不通,


- 评论人:匿名网友   2004-11-25 09:52:50   

狗屁不通,


- 评论人:匿名网友   2004-11-25 09:52:49   

狗屁不通,


- 评论人:匿名网友   2004-11-25 09:52:49   

狗屁不通,


- 评论人:匿名网友   2004-11-25 09:52:49   

狗屁不通,


- 评论人:匿名网友   2004-11-25 09:52:48   

狗屁不通,


- 评论人:匿名网友   2004-11-25 09:52:47   

狗屁不通,


- 评论人:匿名网友   2004-11-25 09:52:47   

狗屁不通,


- 评论人:匿名网友   2004-11-25 09:52:46   

狗屁不通,


- 评论人:匿名网友   2004-11-25 09:52:46   

狗屁不通,


- 评论人:匿名网友   2004-11-25 09:52:45   

狗屁不通,


- 评论人:匿名网友   2004-11-25 09:52:45   

狗屁不通,


- 评论人:匿名网友   2004-11-25 09:52:45   

狗屁不通,


- 评论人:匿名网友   2004-11-25 09:52:44   

狗屁不通,


- 评论人:匿名网友   2004-11-25 09:52:44   

狗屁不通,


- 评论人:匿名网友   2004-11-25 09:51:54   


- 评论人:匿名网友   2004-11-10 11:52:35   


验证码:   
评论内容: