用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
投稿

猜你喜欢

  • 利用Python生成Excel炫酷图表

    2023-03-09 21:52:00
  • 推荐个辅助软件FastStone Capture

    2008-12-23 13:23:00
  • Mysql数据库 ALTER 操作详解

    2024-01-18 11:03:28
  • Python简单实现词云图代码及步骤解析

    2021-05-13 00:25:52
  • 用Vue编写抽象组件的方法

    2024-05-10 14:10:30
  • 用Python实现斐波那契(Fibonacci)函数

    2023-06-29 19:59:07
  • golang定时器Timer的用法和实现原理解析

    2024-02-17 04:23:08
  • javascript 选择文件夹对话框(web)

    2024-04-17 09:48:43
  • Python+selenium 获取浏览器窗口坐标、句柄的方法

    2023-03-21 16:21:52
  • 一文总结MySQL中数学函数有哪些

    2024-01-28 11:24:09
  • 成为一个顶级设计师的第一准则

    2008-04-18 10:29:00
  • vue跳转后不记录历史记录的问题

    2023-07-02 17:03:38
  • python数据化运营的重要意义

    2021-05-05 21:02:27
  • Python爬虫之爬取哔哩哔哩热门视频排行榜

    2021-08-19 04:33:14
  • javascript中判断一个值是否在数组中并没有直接使用

    2024-05-13 10:38:28
  • PyQt5每天必学之QSplitter实现窗口分隔

    2021-12-26 16:33:48
  • 关于vue中的时间格式转化问题

    2024-05-13 09:44:07
  • Python面向对象之继承和多态用法分析

    2023-01-02 02:55:16
  • Python中的startswith和endswith函数使用实例

    2022-06-19 00:47:55
  • 简单谈谈MySQL5.7 JSON格式检索

    2024-01-22 09:07:03
  • asp之家 网络编程 m.aspxhome.com