用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是一个回车换行,&是连接符,&_是代码换行连接的字符。


猜你喜欢
- vue项目中在可编辑div光标位置插入内容html:<div class="mouse-move fl f12 h22 lh
- 介绍KEY分区和HASH分区相似,但是KEY分区支持除text和BLOB之外的所有数据类型的分区,而HASH分区只支持数字分区,KEY分区不
- 本文记录了MySQL下载安装详细教程,供大家参考,具体内容如下1.下载MySQL数据库可以访问官方网站:2.点击DOWNLOADS模块下的C
- defer关键字defer关键字可以让函数或语句延迟到函数语句块的最结尾时,即即将退出函数时执行,即便函数中途报错结束、即便已经panic(
- 一、导言导语:在计算机进行数据交换时,常常会有一个进制转换的过程,我们知道计算机只认0 和 1.在内存系统中,基本基于二进制进行运算的,但是
- UCD介绍UCD是Unicode字符数据库(Unicode Character DataBase)的缩写。UCD由一些描述Unicode字符
- 1、删除目录及目录下所有的文件2、删除目录下的所有文件但目录结构保留3、删除指定文件代码如下/** +-------------------
- 我想大多数的人在编写ASP程序的时候,都碰到过类似的错误信息: Error Num
- 最近有在使用屏幕录制软件录制桌面,在用的过程中突发奇想,使用python能不能做屏幕录制工具,也锻炼下自己的动手能力。接下准备写使用pyth
- 目录解析器和预处理器查询优化器MySQL查询优化需要经过解析、预处理和优化三个步骤。在这些过程中,都有可能发生错误。本篇文章不会深入讨论错误
- 本文实例为大家分享了python实现抖音视频批量下载的具体代码,供大家参考,具体内容如下这里就拿最近很火的抖音视频为例,利用API来实现用户
- 目录GitHub 消息的问题解决方案代码实现0.环境准备1、模拟登录github2.模拟进入Inbox3.检查僵尸项目4.取消关注僵尸项目5
- 学习前言已经完成了RNN网络的构建,但是我们对于RNN网络还有许多疑问,特别是tf.nn.dynamic_rnn函数,其具体的应用方式我们并
- 本文主要介绍了go redis之redigo的使用,分享给大家,具体如下:安装go-redis 三方库为我们封装了很多函数来执行 Redis
- 一:分组函数的语句顺序 1 SELECT ... 2 FROM ...
- 什么是prototype:function定义的对象有一个prototype属性,prototype属性又指向了一个prototype对象,
- 做数据库开发的过程中难免会遇到有表数据备份的,而SELECT INTO……和INSERT INTO SELECT…… 这两种语句就是用来进行
- 有的同学会说,可以使用源代码搜索的办法。的确,对于一个相对简单的页面,这个方法时常奏效。但是,对于构成相对复杂的页面(比如页面嵌入很多脚本文
- 遇到复杂计算找python绝对不让你失望,sympy是一个Python的科学计算库,用一套强大的符号计算体系完成诸如多项式求值、求极限、解方
- php面试题的题目: $a = '/a/b/c/d/e.php'; $b = '/a/b/12/34/c.php