设为首页   加入最爱           最新更新:全方位英文文章资料库
 
资料坊搜索: 标题 全文     
ASP动态生成的javascript表单验证代码
   首页>>YesizeCOM>>电脑技能坊>>ASP>>正文       
 
广告招租,e-mail:yesize@hotmail.com

广告招租,e-mail:yesize@hotmail.com

以网上down了一个ASP动态生成Form验证Javascript的代码,自己扩容了一下。作者的大名我给忘了,不过我记得清楚,从第一条至第九条的代码都是该作者的原创。至于九至第十五条却是本人自己加的哦。而且由于本人水平有限,从第九条至第十五条不见得会条条生效啊?呵呵,其实把它贴在这里没有什么必要的,因为这点小会伎俩谁都会用的,我把它的作用定位为:开发时找不到该函数时到这里拷贝一下就可以了。呵,因为我即没有刻录机也没有移动硬盘。实在是没有办法把这些代码随身携带,不过还好,在北京到处都可以上网。所以就把这个放在这里,用的时候Ctrl+C,再Ctrl+V好了。
<%
****************************************************************
函数名称:CheckForm_JS(frmName,errStr)
功能:用ASP的方法动态写出JavaScript的表单验证的函数checkSubmit()
使用方法:1、<!--Include File=URL+本函数所在的页>;
         2、<form onsubmit=javascript:return checkSubmit()>;
原作者已被忘却,二次开发作者:Guo.Q.M
最后更新:2004
****************************************************************
帮助:
---------------------------------------------------------------
·参数说明:
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:确认不是以以数字开头的Text类型
9:必须包含10-888888格式的Text类型
10:不得包含中文、空格及其他非法字符的Text类型,即只能包含_-0-9a-zA-Z
11:必须只包含数字及-在内的Text类型
12:必须为正确网址的Text类型
13:必须小于指定位数的Text类型
14:不得包含HTML标记的Text类型
15:确认未被禁用的Select类型必须选择 格式:检查的表单项|15|提示信息|关联项
注意:如有级联菜单,请将级联菜单的验证过程放到最后检验!!!!
------------------------------------------------------------------------
%>
<%
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&_
  //Power by Guoquanman 2004&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&_
  var uidBeginReg = /^[0-9]+[_a-z0-9]/;&vbCrlf&_
  var phoneReg = /\d{2}-\d{5}/;&vbCrlf&_
  var phoneDetailReg = /[^0-9\-]/;&vbCrlf&_
  var uidReg = /[^a-zA-Z0-9_\-]/;&vbCrlf&_
  var htmlReg = /<(.*)>.*<\/\1>/;&vbCrlf&_
 
  var re1 = /^http:\/\/[A-Za-z][A-Za-z0-9\-]*[A-Za-z]*\./;&vbCrlf&_
  var re2 = /^http:\/\/[0-9]{1,5}[A-Za-z]*[0-9]*\./;&vbCrlf&_
  var re3 = /\.{2,}/;&vbCrlf&_
  var re4 = /\:{2,}/;&vbCrlf&_
  var re5 = /\/{3,}/;&vbCrlf&_
  var re6 = /\,+/;&vbCrlf&_
  var re7 = /\!+/;&vbCrlf&_
  var re8 = /\@+/;&vbCrlf&_
  var re9 = /\#+/;&vbCrlf&_
  var re10 = /\$+/;&vbCrlf&_
  var re11 = /\^+/;&vbCrlf&_
  var re12 = /\*+/;&vbCrlf&_
  var re13 = /\|+/;&vbCrlf&_
  var re14 = /\.[a-z0-9_&=?\/]*[A-Za-z0-9\/\~]{2,}$/;&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

 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
    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
   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
   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
   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
   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
   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
   Exit Function


    Case 8  确认以数字开头的Text类型
  findJS=if ((uidBeginReg.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
   Exit Function


    Case 9  确认10-101212格式的电话号码
  findJS=if ((!phoneReg.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
   Exit Function


    Case 10 确认只包含英文字母及-,_在内的Text。(即不包括中文及其他特殊字符)
  findJS=if ((uidReg.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
   Exit Function


 Case 11  确认只包含数字及-在内的Text类型(电话号码及传真常用)
  findJS=if ((phoneDetailReg.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
  Exit Function
 

    Case 12   确认是否为有效网址!
  findJS=if (((!re1.test(document.&frmName&.&tmpArr(i)&.value))&&(!re2.test(document.&frmName&.&tmpArr(i)&.value))&_
     &&(document.&frmName&.&tmpArr(i)&.value!=))||&_
     (re3.test(document.&frmName&.&tmpArr(i)&.value))||(re4.test(document.&frmName&.&tmpArr(i)&.value))||&_
     (re5.test(document.&frmName&.&tmpArr(i)&.value))||(re6.test(document.&frmName&.&tmpArr(i)&.value))||&_
   (re7.test(document.&frmName&.&tmpArr(i)&.value))||(re8.test(document.&frmName&.&tmpArr(i)&.value))||&_
   (re9.test(document.&frmName&.&tmpArr(i)&.value))||(re10.test(document.&frmName&.&tmpArr(i)&.value))||&_
     (re11.test(document.&frmName&.&tmpArr(i)&.value))||(re12.test(document.&frmName&.&tmpArr(i)&.value))||&_
     (re13.test(document.&frmName&.&tmpArr(i)&.value))||(!re14.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 
 
  Exit Function 


   Case 13   确认不大于固定位数的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
  Exit Function


   Case 14   确认含有HTML标记的Text类型
   findJS=if(htmlReg.test(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
   Exit Function
 
 
  Case 15
==========================================================
确认未被禁用的Select类型必须选择 格式:state|15|请选择所在省名称!|selCountry|city|请选择城市信息
注:级联菜单第1项当selectedIndex!=0时,第2项第3项被禁用!无须检查其他两项
当级联菜单第1项selectedIndex==0时,第2项的selectedIndex不能为0,第二项的selectedIndex!=0时,第3项的selectedIndex也不能为0
此项用于检查国家/省/市三项级联菜单,当国家不为中国时,省市可不填,为中国时,必须填写省以及相对的市!
  findJS=if (document.&frmName&.&tmpArr(i+3)&.selectedIndex ==0)&vbCrlf&_
  {&vbCrlf&_
      if (document.&frmName&.&tmpArr(i)&.selectedIndex ==0)&vbCrlf&_
     {&vbCrlf&_
    window.alert(&tmpArr(i+2)&);&vbCrlf&_
      document.&frmName&.&tmpArr(i)&.focus;&vbCrlf&_
   return false;&vbCrlf&_
   }&vbCrlf&_
      else if (document.&frmName&.&tmpArr(i)&.selectedIndex != 0)&vbCrlf&_
  {&vbCrlf&_
      if (document.&frmName&.&tmpArr(i+4)&.selectedIndex == 0)&vbCrlf&_
     {&vbCrlf&_
    window.alert(&tmpArr(i+5)&);&vbCrlf&_
      document.&frmName&.&tmpArr(i+4)&.focus;&vbCrlf&_
   return false;&vbCrlf&_
   }&vbCrlf&_

  
     }&vbCrlf&_
  
     }&vbCrlf
   Exit Function

  Case 16  确认未被禁用的Select类型必须选择 格式:检查的表单项|16|提示信息|关联项注:当关联项为第一项时,确认开始!
  findJS=if (document.&frmName&.&tmpArr(i+3)&.selectedIndex != 0)&vbCrlf&_
  {&vbCrlf&_
      if (document.&frmName&.&tmpArr(i)&.selectedIndex == 0)&vbCrlf&_
     {&vbCrlf&_
    window.alert(&tmpArr(i+2)&);&vbCrlf&_
      document.&frmName&.&tmpArr(i)&.focus;&vbCrlf&_
   return false;&vbCrlf&_
   }&vbCrlf&_
     
  
     }&vbCrlf
   Exit Function

   
  End Select
End Function
%>

***********************************************************************
使用范例:
<%@LANGUAGE=VBSCRIPT CODEPAGE=936%>
<!--#Include file = inc/check_formJS.asp-->
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd>
<%
==========================================================
                              表单验证实例
==========================================================
1、<!--#Include file = inc/check_formJS.asp-->;
2、绘制表单:name= onsubmit = Javascript: return checkSubmit() 注意大小写;
3、定义Guo_Error //一句只能出现一个“,”如位数和确认密码项须多加“|”指定参数;
4、Call CheckForm_js(formname,Guo_Error)
www.knowsky.com
==========================================================

 Dim Guo_Error
 Guo_Error =text|0|文本项必须填写!,
 Guo_Error = Guo_Error & number|0|数字项必须填写且必须为数字!,
 Guo_Error = Guo_Error & number|2|数字项必须为数字!,
 Guo_Error = Guo_Error & digital|3|位数项必须为6位!|6,
 Guo_Error = Guo_Error & moredigital|4|多位项必须大于4位!|4,
 Guo_Error = Guo_Error & email|5|Mail项必须填写Email地址!,
 Guo_Error = Guo_Error & caractor|6|字符项必须为0-9A-Z的字符!,
 Guo_Error = Guo_Error & password2|7|确认密码必须与密码项保持一致!|password1,
 Guo_Error = Guo_Error & listmenu|1|必须选择!
 Guo_Error = Guo_Error & uid|8|用户名不能以数字开头!,
 
 Call CheckForm_js(form1,Guo_Error)
==========================================================
                 表单验证流程
==========================================================
1、通过split(Guo_Error,.)拆分至数组tempArr();
2、通过split(tempArr,|)拆分至数组tempArr();
3、Select Case split(tempArr(i+1),|)执行验证及输出错误提示信息split(tempArr(i+2));
4、Javascript区分大小写地,所以各表单组件的名称都要注意书写一致哟~~
==========================================================
%>

<html>
<head>
<meta http-equiv=Content-Type content=text/html; charset=gb2312>
<title>表单验证实例</title>
</head>

<body>
<form name=form1 method=post action=check_form.asp onsubmit=JavaScript:return checkSubmit()>

  <p align=center>待验证的表单</p>
***************************************************************
以上代码绝大多数已通过测试,不过是不是都好用,我只能说那个级联的下拉菜单用起来不太好用。看看哪位仁兄或WEB美眉加以改进喽。呵呵

 


上一篇:人文的ASP开发基础入门之简介 下一篇:浅谈ASP中Request对象获取客户端数据的顺序

版权说明:作品来源于网上,版权归作者所有,如果无意中侵犯了您的版权,请来信告知,本站将在3个工作日内删除。yesize@hotmail.com
  热门小游戏分类 
射击小游戏 连连看小游戏
台球小游戏 成人小游戏
CS小游戏 化妆小游戏
赛车小游戏 休闲小游戏
篮球小游戏 换装小游戏
儿童小游戏 牛牛小游戏
麻将小游戏 冒险小游戏
美媚小游戏 益智小游戏
体育小游戏  
Society Recreation & Sports
Travel & Leisure Communications
Vehicles Computers
Fashion Arts & Entertainment
Reference & Education Disease & Illness
Writing & Speaking Politics
Product Reviews Food & Beverage
Finance Internet Business
Self Improvement Home & Family
Health & Fitness Business
最新更新内容
警惕“公务员报考热”背
公务员考试不是丈母娘考
一名新公务员的自白:我
公务员考脑筋急转弯与挂
北努斗:2006行政能力测
大讨论:06行测BT题目大
过来人回忆:当年,我也
一家之言:公务员热折射
公务员考试申论要是有正
数十万大学生走进公务员
      粤ICP备05005424         Copyright ©2000 - 2004 Yesize.COM