当前位置: 首页 > 图文教程 > 网络编程 > ASP > 用ASP动态生成javascript的表单验证代码

ASP
Access 2000 数据库 80 万记录通用快速分页类
Microsoft JET Database Engine 错误 ''80004005'' 未指定的错误的完美解决方法
收藏的ASP常用的函数集
asp分页的一个类
ASP开发网页牢记注意事项
ASP下操作Excel技术总结分析
ASP数据岛操作类
ASP经典分页类
asp论坛在线人数统计研究
ASP调用SQL SERVER存储程序
asp输出bmp
ASP连接数据库的全能代码
ASP面向对象编程探讨及比较
web文件管理器的后续开发
一小偷类!!有兴趣的可以看看
利用ASP实现事务处理的方法
大数量查询分页显示 微软的解决办法
如何把ASP编写成DLL
asp实现树型结构
超级ASP大分页_我的类容我做主

用ASP动态生成javascript的表单验证代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 211 ::
收藏到网摘: n/a

  表单的验证是开发WEB应用程序中常遇到的一关。有时候我们必须保证表单的某些项必须填写、必须为数字、必须是指定的位数等等,这时候就要用到表单验证了,一般我们常用的表单验证有2种方式:
1、编写JavaScript或VBScript的表单验证函数,在客户端进行验证;
2、在表单提交后,使用ASP的方法Request.Form获取表单的输入值进行判断,然后返回结果,这是在服务端进行验证;

  这2种方式都有其优缺点,比如第1种方式速度比较快,而且通常使用警告框的方式,用户能够很快的根据提示完成表单的填写,但是缺点就是用户的浏览器必须是支持JavaScript脚本的,再不然如果他关闭了JavaScript,那就!@#$%&^*(小田已经倒在地上了^_^);而第2种方式的兼容性比较好,但是缺点是速度比较慢(提交到服务端,在返回)而且使用也不方便。这次主要是用JavaScript的方法来验证,当然,如果同时用2种方式来验证是最保险了,不过(汗…………)要累死我们这些程序员了:)

  上面解释了表单验证的2中方式,下面就具体来讲讲动态生成JavaScript的概念。为什么要动态生成呢?因为这种客户端的验证代码是很烦琐的,如果每次都要自己编写真是累啊!用惯DW(Dreamweaver)或UD的朋友可能通常使用表单验证的插件,使用后生成的代码也没有艺术感,而且很多是用不到的(代码冗余)。小田要讲的是,生成完全符合表单情况的代码。

声明:小田对JavaScript并不精通,这里只是想谈谈动态生成的方法,JS的高手完全可以自己改。

  那么我们开始喽。

1、我们先来看看一段简单的JavaScript的验证代码:

<script language=javascript>
<!--
//Power by xiaotian 2002
function checkSubmit()
{
if ((document.form1.name.value)=='')
{
window.alert ('姓名必须填写');
document.form1.name.select();
document.form1.name.focus();
return false;
}
else
return true;
}
//-->
</script>

<form name="form1" onsubmit="javascript:return checkSubmit()">
<input type="text" name="name">
</form>

这段代码是验证表单form1的name表单项,必须填写内容。这里就有几个关键的部分:表单域名称、表单项名称、判断语句;这些就是我们下面编写ASP函数的关键了。

2、如何生成JavaScript代码。最简单的,就是用Response.Write输出了,比如把上面代码输出就可以是:

<%
Response.Write "<script language=javascript>"&vbCrlf&_
       "<!--"&vbCrlf&_
       "//Power by xiaotian 2002"&vbCrlf&_
       "function checkSubmit()"&vbCrlf&_
       "{"&vbCrlf&_
       "if ((document.form1.name.value)=='')"&vbCrlf&_
       "{"&vbCrlf&_
       "window.alert ('姓名必须填写');"&vbCrlf&_
       "document.form1.name.select();"&vbCrlf&_
       "document.form1.name.focus();"&vbCrlf&_
       "return false;"&vbCrlf&_
       "else"&vbCrlf&_
       "return true;"&vbCrlf&_
       "}"&vbCrlf&_
       "//-->"&vbCrlf&_
       "</script>"&vbCrlf&_
%>

这里的vbCrlf是一个回车换行,&是连接符,&_是代码换行连接的字符。

3、这段代码的头和尾是基本固定不变的,变化的是中间的if判断部分,我们可以先把这部分写成函数,小田已经写好一个了,大家可以参考一下,下面是代码:

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&_