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

2016-01-29 17:45 20 1 收藏

用ASP动态生成javascript的表单验证代码,用ASP动态生成&#106avascript的表单验证代码

【 tulaoshi.com - ASP 】

  表单的验证是开发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&_

来源:http://www.tulaoshi.com/n/20160129/1502814.html

延伸阅读
  原代码插入到<body下面:<script language="JavaScript" <!-- N = 40; Y = new Array(); X = new Array(); S = new Array(); A = new Array(); B = new Array(); M = new Array(); V = (document.layers)?1:0; iH=(document.layers)?window.innerHeight:window.document.body.clientHeight; iW=(document.layers)?win...
  对于JavaScript初学者来说,它们经常忘记在旧浏览器(比如Netscape Navigator 1.12)隐藏JavaScript代码。你也许会问为什么要隐藏呢?原因很简单,就是旧的浏览器不支持JavaScript。如果你不加以正确的措施,在旧的浏览器上将会显示你的JavaScript源代码,跟HTML一样,所以你必须将JavaScript隐藏起来。具体,你可以使用一些HTML语...
标签: ASP
  预先读取图片的方法是比较简单的,用javascript这样实现。 将如下的类似代码放在HTML的<head区: <SCRIPT LANGUAGE="JavaScript" <!-- Image1= new Image(100,50) Image1.src = "image1.gif" Image2 = new Image(100,50) Image2.src = "image2.gif" Image3 = new Image(100,50) Image3.src = ...
  随着互联网的飞速发展,地球变得越来越小,人们可以跨越时间和空间得界限进行交流于合作。但是随之也产生了一些肆意搞破坏的黑客,这就使得程序设计人员在编制应用程序中要考虑到黑客袭击这个问题,所以自然而然地就会想到保护。本节教程将教你怎样利用Javascript进行密码保护。利用JavaScript来对网页进行密码保护有几种方法。最早...
标签: flash教程
    说明: 略作修改,主要是一些很初级的操作; 又很多相似的文章,不过这个很权威     下面是一些在和使用javascript的HTML文件直接通信的示例,每个示例都有简略的步骤     本文讨论了3种基本的Flash/javascript通信方式: javascript 到 Flash的通信----使用Flash播放器的javas...