用ASP的方法动态写出JavaScript的表单验证的函数checkSubmit()

80酷酷网    80kuku.com

  javascript|表单验证|动态|函数<%
'请转存为CheckForm_JS.asp使用

'*****************************************************************************
'函数名称:CheckForm_JS(frmName,errStr)
'功能:用ASP的方法动态写出JavaScript的表单验证的函数checkSubmit()
'使用方法:1、<!--Include File=URL+本函数所在的页>;
'         2、<form >;

'*****************************************************************************
'帮助:
'-----------------------------------------------------------------------------
'·参数说明:
'frmName:表单域的名称
'errStr:验证列表,如:"num|3|型号必须不小于8位|8,email|5|请输入正确的email格式",这里
'       num表示表单域名称,3表示验证参数,8表示不小于的位数(可选)    
'
'·验证参数列表:
'0:必填的Text类型
'1:必填的ListMenu类型
'2:必须为数字的Text类型
'3:必须为指定位数的Text类型
'4:必须小于指定位数的Text类型
'5:必须为Email的Text类型
'6:必须为a-z或0-9的字符的Text类型
'7:确认密码和密码必须相等的Text类型
'8:必须为a-z或0-9或A-Z的字符Text类型
'9:必须大于指定位数的Text类型
'-----------------------------------------------------------------------------
%>
<%
Sub CheckForm_JS(frmName,errStr)
Dim tmpArr
Dim i
Dim strShow       '输出JS的字符串
  '获取错误列表,建立数组
  tmpArr=Split(errStr,",")
  '写JS
  for i=0 to UBound(tmpArr)
    if i<>0 then
      strShow=strShow&"else "&findJS(frmName,tmpArr(i))
    else
      strShow=strShow&findJS(frmName,tmpArr(i))
    end if
  next
  '输出
  strShow="<script language=javascript>"&vbCrlf&_
          "<!--"&vbCrlf&_
          "//Powered by dovia.net"&vbCrlf&_
          "function checkSubmit()"&vbCrlf&_
          "{"&vbCrlf&_
          "var emailReg = /^[_a-z0-9]+([_a-z0-9]+\.)+[a-z0-9]{2,3}$/;"&vbCrlf&_
          "var pwdReg = /[a-z0-9]$/;"&vbCrlf&_
          strShow&_
          "else"&vbCrlf&_
          "return true;"&vbCrlf&_
          "}"&vbCrlf&_
          "//-->"&vbCrlf&_
          "</script>"
   Response.Write strShow
End Sub

Function findJS(frmName,errStr) 
Dim tmpArr
Dim i
  '参数值
  i=0
  '获取错误列表,建立数组
  tmpArr=Split(errStr,"|")
  '输出查询条件
  Select Case tmpArr(i+1)
    Case "0"   '必填的Text类型
      findJS="if ((document."&frmName&"."&tmpArr(i)&".value)=="""")"&vbCrlf&_
             "{"&vbCrlf&_
             "window.alert ('"&tmpArr(i+2)&"');"&vbCrlf&_
             "document."&frmName&"."&tmpArr(i)&".select();"&vbCrlf&_
             "document."&frmName&"."&tmpArr(i)&".focus();"&vbCrlf&_
             "return false;"&vbCrlf&_
             "}"&vbCrlf
             '"else"&vbCrlf&_
             '"return true;"&vbCrlf
      Exit Function
    Case "1"  '必填的ListMenu类型
      findJS="if ((document."&frmName&"."&tmpArr(i)&".value)=="""")"&vbCrlf&_
             "{"&vbCrlf&_
             "window.alert ('"&tmpArr(i+2)&"');"&vbCrlf&_
             "document."&frmName&"."&tmpArr(i)&".focus();"&vbCrlf&_
             "return false;"&vbCrlf&_
             "}"&vbCrlf
             '"else"&vbCrlf&_
             '"return true;"&vbCrlf
      Exit Function
    Case "2"  '必须为数字的Text类型
      findJS="if (isNaN(document."&frmName&"."&tmpArr(i)&".value))"&vbCrlf&_
             "{"&vbCrlf&_
             "window.alert ('"&tmpArr(i+2)&"');"&vbCrlf&_
             "document."&frmName&"."&tmpArr(i)&".select();"&vbCrlf&_
             "document."&frmName&"."&tmpArr(i)&".focus();"&vbCrlf&_
             "return false;"&vbCrlf&_
             "}"&vbCrlf
             '"else"&vbCrlf&_
             '"return true;"&vbCrlf
      Exit Function
    Case "3"  '必须为指定位数的Text类型
      findJS="if (document."&frmName&"."&tmpArr(i)&".value.length="&tmpArr(i+3)&")"&vbCrlf&_
             "{"&vbCrlf&_
             "window.alert ('"&tmpArr(i+2)&"');"&vbCrlf&_
             "document."&frmName&"."&tmpArr(i)&".select();"&vbCrlf&_
             "document."&frmName&"."&tmpArr(i)&".focus();"&vbCrlf&_
             "return false;"&vbCrlf&_
             "}"&vbCrlf
             '"else"&vbCrlf&_
             '"return true;"&vbCrlf
      Exit Function
    Case "4"  '必须大于指定位数的Text类型
      findJS="if (document."&frmName&"."&tmpArr(i)&".value.length>"&tmpArr(i+3)&")"&vbCrlf&_
             "{"&vbCrlf&_
             "window.alert ('"&tmpArr(i+2)&"');"&vbCrlf&_
             "document."&frmName&"."&tmpArr(i)&".select();"&vbCrlf&_
             "document."&frmName&"."&tmpArr(i)&".focus();"&vbCrlf&_
             "return false;"&vbCrlf&_
             "}"&vbCrlf
             '"else"&vbCrlf&_
             '"return true;"&vbCrlf
      Exit Function
    Case "5"  '必须为Email的Text类型
      findJS="if ((!emailReg.test(document."&frmName&"."&tmpArr(i)&".value))&&(document."&frmName&"."&tmpArr(i)&".value!=''))"&vbCrlf&_
             "{"&vbCrlf&_
             "window.alert ('"&tmpArr(i+2)&"');"&vbCrlf&_
             "document."&frmName&"."&tmpArr(i)&".select();"&vbCrlf&_
             "document."&frmName&"."&tmpArr(i)&".focus();"&vbCrlf&_
             "return false;"&vbCrlf&_
             "}"&vbCrlf
             '"else"&vbCrlf&_
             '"return true;"&vbCrlf
      Exit Function
    Case "6"  '必须为a-z或0-9的字符的Text类型
      findJS="if ((!pwdReg.test(document."&frmName&"."&tmpArr(i)&".value))&&(document."&frmName&"."&tmpArr(i)&".value!=''))"&vbCrlf&_
             "{"&vbCrlf&_
             "window.alert ('"&tmpArr(i+2)&"');"&vbCrlf&_
             "document."&frmName&"."&tmpArr(i)&".select();"&vbCrlf&_
             "document."&frmName&"."&tmpArr(i)&".focus();"&vbCrlf&_
             "return false;"&vbCrlf&_
             "}"&vbCrlf
             '"else"&vbCrlf&_
             '"return true;"&vbCrlf
      Exit Function
    Case "7"  '确认密码和密码必须相等的Text类型
      findJS="if ((document."&frmName&"."&tmpArr(i)&".value)!=(document."&frmName&"."&tmpArr(i+3)&".value))"&vbCrlf&_
             "{"&vbCrlf&_
             "window.alert ('"&tmpArr(i+2)&"');"&vbCrlf&_
             "document."&frmName&"."&tmpArr(i)&".select();"&vbCrlf&_
             "document."&frmName&"."&tmpArr(i)&".focus();"&vbCrlf&_
             "return false;"&vbCrlf&_
             "}"&vbCrlf
             '"else"&vbCrlf&_
             '"return true;"&vbCrlf
      Exit Function
       Case "8"  '必须为a-z或0-9或A-Z的字符的Text类型
      findJS="if ((!namReg.test(document."&frmName&"."&tmpArr(i)&".value))&&(document."&frmName&"."&tmpArr(i)&".value!=''))"&vbCrlf&_
             "{"&vbCrlf&_
             "window.alert ('"&tmpArr(i+2)&"');"&vbCrlf&_
             "document."&frmName&"."&tmpArr(i)&".select();"&vbCrlf&_
             "document."&frmName&"."&tmpArr(i)&".focus();"&vbCrlf&_
             "return false;"&vbCrlf&_
             "}"&vbCrlf
             '"else"&vbCrlf&_
             '"return true;"&vbCrlf
      Exit Function
       Case "9"  '必须大于指定位数的Text类型
      findJS="if (document."&frmName&"."&tmpArr(i)&".value.length<"&tmpArr(i+3)&")"&vbCrlf&_
             "{"&vbCrlf&_
             "window.alert ('"&tmpArr(i+2)&"');"&vbCrlf&_
             "document."&frmName&"."&tmpArr(i)&".select();"&vbCrlf&_
             "document."&frmName&"."&tmpArr(i)&".focus();"&vbCrlf&_
             "return false;"&vbCrlf&_
             "}"&vbCrlf
             '"else"&vbCrlf&_
             '"return true;"&vbCrlf
      Exit Function
  End Select
End Function
%>


分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: