用ASP的方法動態寫出JavaScript的表單驗證的函數checkSubmit()

來源:互聯網
上載者:User
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
%>


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.