|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的;javascript|表单验证|静态 表单的验证是开辟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的验证代码:
<formname="form1"><inputtype="text"name="name"></form>[/code]
这段代码是验证表单form1的name表单项,必需填写内容。这里就有几个关头的局部:表单域称号、表单项称号、判别语句;这些就是咱们上面编写ASP函数的关头了。
2、若何生成JavaScript代码。最复杂的,就是用Response.Write输入了,好比把下面代码输入就能够是:
[/code]<P>
这里的vbCrlf是一个回车换行,&是毗连符,&_是代码换行毗连的字符。
3、这段代码的头和尾是根基固定不变的,变更的是两头的if判别局部,咱们可以先把这局部写成函数,小田已写好一个了,人人可以参考一下,上面是代码:
FunctionfindJS(frmName,errStr)
DimtmpArr
Dimi
'参数值
i=0
'获得毛病列表,创立数组
tmpArr=Split(errStr,"|")
'输入查询前提
SelectCasetmpArr(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&_
"returnfalse;"&vbCrlf&_
"}"&vbCrlf
'"else"&vbCrlf&_
'"returntrue;"&vbCrlf
ExitFunction
Case"1"'必填的ListMenu类型
findJS="if((document."&frmName&"."&tmpArr(i)&".value)=="""")"&vbCrlf&_
"{"&vbCrlf&_
"window.alert('"&tmpArr(i+2)&"');"&vbCrlf&_
"document."&frmName&"."&tmpArr(i)&".focus();"&vbCrlf&_
"returnfalse;"&vbCrlf&_
"}"&vbCrlf
'"else"&vbCrlf&_
'"returntrue;"&vbCrlf
ExitFunction
Case"2"'必需为数字的Text类型
findJS="if(isNaN(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&_
"returnfalse;"&vbCrlf&_
"}"&vbCrlf
'"else"&vbCrlf&_
'"returntrue;"&vbCrlf
ExitFunction
Case"3"'必需为指定位数的Text类型
findJS="if(document."&frmName&"."&tmpArr(i)&".value.length="&tmpArr(i+3)&")"&vbCrlf&_
"{"&vbCrlf&_
"window.alert('"&tmpArr(i+2)&"');"&vbCrlf&_
"document."&frmName&"."&tmpArr(i)&".select();"&vbCrlf&_
"document."&frmName&"."&tmpArr(i)&".focus();"&vbCrlf&_
"returnfalse;"&vbCrlf&_
"}"&vbCrlf
'"else"&vbCrlf&_
'"returntrue;"&vbCrlf
ExitFunction
Case"4"'必需大于指定位数的Text类型
findJS="if(document."&frmName&"."&tmpArr(i)&".value.length>"&tmpArr(i+3)&")"&vbCrlf&_
"{"&vbCrlf&_
"window.alert('"&tmpArr(i+2)&"');"&vbCrlf&_
"document."&frmName&"."&tmpArr(i)&".select();"&vbCrlf&_
"document."&frmName&"."&tmpArr(i)&".focus();"&vbCrlf&_
"returnfalse;"&vbCrlf&_
"}"&vbCrlf
'"else"&vbCrlf&_
'"returntrue;"&vbCrlf
ExitFunction
Case"5"'必需为Email的Text类型
findJS="if((!emailReg.test(document."&frmName&"."&tmpArr(i)&".value))&&(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&_ASP一般认为只能运行在IIS上,正如前面所提到的,这并不是十分正确,事实上,ASP也能运行在Apache上。Apache ASP可在任意Apache服务器上运行有限的ASP功能,所需做的,只需打开mod_perl。 |
|