• 2931阅读
  • 0回复

JavaScript验证表单函数 [复制链接]

上一主题 下一主题
离线cai
 

只看楼主 倒序阅读 0楼 发表于: 2005-01-21
JavaScript验证表单函数

  1. function validateForm() {
  2. var i, j, vObj, vType, vCon, eNum = 0, eMsg = '', cItemNum = 0, fErrMsg='', re;
  3. var args = validateForm.arguments;
  4. for (i = 0; i < (args.length-2); i += 3)
  5. {
  6. vObj = args[i];
  7. vType = args[i+1];
  8. vCon = args[i+2];
  9. switch (vType)
  10.   {
  11.   case 'FitRegEx':
  12.   re = vCon;
  13.   if ( vObj.value.search( re ) != 0 )
  14.     {
  15.     eNum ++;
  16.     eMsg += genErrMsg( eNum,vObj,'的值不符合要求' );
  17.     }
  18.   break;
  19.   case 'AntiRegEx':
  20.   re = vCon;
  21.   if ( vObj.value.search( re ) >= 0 )
  22.     {
  23.     eNum ++;
  24.     eMsg += genErrMsg( eNum,vObj,'的值不符合要求' );
  25.     }
  26.   break;
  27.   case 'NotBlank':
  28.   if ( vObj.value == '' )
  29.     {
  30.     eNum ++;
  31.     eMsg += genErrMsg(eNum,vObj,'没有填写');
  32.     }
  33.   break;
  34.   case 'IsNumeric':
  35.   if ( isNaN(vObj.value) || vObj.value == '' )
  36.     {
  37.     eNum ++;
  38.     eMsg += genErrMsg( eNum,vObj,'不是数字' );
  39.     }
  40.   break;
  41.   case 'IsInt':
  42.   re = /^[0-9]+$/;
  43.   if ( vObj.value.search(re) != 0 || vObj.value.substring(0,1) == 0 )
  44.     {
  45.     eNum ++;
  46.     eMsg += genErrMsg( eNum,vObj,'不是整数' );
  47.     }
  48.   break;
  49.   case 'IsEmail':
  50.   re = /^[a-zA-Z0-9_]+@[a-zA-Z0-9_]+\.[a-zA-Z0-9_]+$/;
  51.   if ( vObj.value.search(re) != 0 )
  52.     {
  53.     eNum ++;
  54.     eMsg += genErrMsg( eNum,vObj,'不是有效Email地址' );
  55.     }
  56.   break;
  57.   case 'IsPlainText':
  58.   re = /<[a-zA-Z]+[^>]*>/;
  59.   if ( vObj.value.search(re) >= 0 )
  60.     {
  61.     eNum ++;
  62.     eMsg += genErrMsg( eNum,vObj,'不是纯文本,含有HTML标签' );
  63.     }
  64.   break;
  65.   case 'LengthRange':
  66.   vc_min = parseFloat( vCon.substring( 0,vCon.indexOf("to") ) );
  67.   vc_max = parseFloat( vCon.substring( vCon.indexOf("to")+2 ) );
  68.   if ( vObj.value.length < vc_min || vObj.value.length > vc_max )
  69.     {
  70.     eNum ++;
  71.     eMsg += genErrMsg( eNum,vObj,'的长度不在指定范围内' );
  72.     }
  73.   break;
  74.   case 'NumericRange':
  75.   vc_min = parseFloat( vCon.substring( 0,vCon.indexOf("to") ) );
  76.   vc_max = parseFloat( vCon.substring( vCon.indexOf("to")+2 ) );
  77.   if ( vObj.value < vc_min || vObj.value > vc_max )
  78.     {
  79.     eNum ++;
  80.     eMsg += genErrMsg( eNum,vObj,'的值不在指定范围内' );
  81.     }
  82.   break;
  83.   case 'IsEqualTo':
  84.   if ( vObj.value != vCon.value )
  85.     {
  86.     eNum ++;
  87.     eMsg += genErrMsg( eNum,vObj,'和第一次输入的不相等' );
  88.     }
  89.   break;
  90.   case 'CheckLimit':
  91.   vc_min = parseFloat( vCon.substring( 0,vCon.indexOf("to") ) );
  92.   vc_max = parseFloat( vCon.substring( vCon.indexOf("to")+2 ) );
  93.   if ( vc_max == -1 )//vc_max=-1表示没有上限
  94.     {
  95.     vc_max = vObj.length;
  96.     }
  97.   for (j = 0;j < vObj.length;j ++)
  98.     {
  99.     if ( vObj[j].checked )
  100.     {
  101.       cItemNum ++;
  102.     }
  103.     }
  104.   if ( cItemNum < vc_min || cItemNum > vc_max )
  105.     {
  106.     eNum ++;
  107.     eMsg += genErrMsg( eNum,vObj[0],'的选中项目数不在指定范围内' );
  108.     }
  109.   break;
  110.   case 'SelectValid':
  111.   if ( vObj.value == '' )
  112.     {
  113.     eNum ++;
  114.     eMsg += genErrMsg(eNum,vObj,'没有选中有效项');
  115.     }
  116.   break;
  117.   }
  118. }
  119. if ( eNum )
  120. {
  121. fErrMsg = '抱歉,您提交的数据存在' + eNum + '处错误:\n';
  122. fErrMsg += '==============================\n';
  123. fErrMsg += eMsg;
  124. fErrMsg += '==============================\n';
  125. fErrMsg += '\n请修改后再提交,谢谢!';
  126. alert( fErrMsg );
  127. return false;
  128. }
  129. }
  130. function genErrMsg(eTimes,vObj,eType)
  131. {
  132. eMsg = eTimes + '. [ ' + vObj.title + ' ] ' + eType + '。\n';
  133. return eMsg;
  134. }
grant all privileges on *.* to 'a'@'localhost' identified by 'a' with grant option;flush privileges;
快速回复
限100 字节
 
上一个 下一个