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

作者:greenness 来源:greenness的专栏 时间:2007-09-30 20:38:00 

表单的验证是开发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是一个回车换行,&是连接符,&_是代码换行连接的字符。
 

标签:表单,验证,动态
0
投稿

猜你喜欢

  • ACCESS数据库遇日文时内存溢出的最简单处理办法

    2009-07-09 14:04:00
  • JavaScript图片放大镜效果

    2009-10-19 22:15:00
  • ASP.NET在IIS一些问题经验总结

    2007-08-07 15:42:00
  • 用户体验设计答疑对话(半吊子和纯外行)

    2010-11-30 21:27:00
  • asp如何在网站上提供音乐下载?

    2010-06-22 21:14:00
  • Favicon图标小常识

    2010-04-01 12:01:00
  • VBScript GetObject 函数用法介绍

    2008-01-30 17:00:00
  • asp使用 sql_dmo 添加新数据库代码

    2010-03-17 20:57:00
  • document.execCommand() 解析

    2007-11-13 17:22:00
  • 网站浏览器兼容的底线

    2007-12-22 11:26:00
  • 纯CSS制作的网页中的lightbox效果

    2007-11-06 18:59:00
  • 天气预报调用代码

    2008-11-18 15:59:00
  • ASP(JScript)构建SQL语句“类”

    2008-04-30 07:12:00
  • ASP下批量删除数据的两种方法

    2011-02-05 11:01:00
  • WEB2.0网页制作标准教程(9)第一个CSS布局实例

    2008-02-19 19:05:00
  • 使用Title提升可访问性

    2009-04-04 17:06:00
  • 用一条SQL实现:一行多个字段数据的最大值

    2008-12-31 13:37:00
  • asp更改Windows2000管理者密码?

    2010-06-26 11:03:00
  • aspjpeg组件asp代码实例使用详解

    2008-12-14 10:33:00
  • 浅述七大主流数据库

    2011-08-05 18:21:27
  • asp之家 网络编程 m.aspxhome.com