两条防线,一个函数:
试问你如何能保证客户端和服务器端具有相同的功能?表单域的验证闪现在我们眼前。别人把你的html复制到另外一个脚本,然后改变客户端的表单域验证--这并不是一件难事。摆在眼前的解决方法是将表单域的验证放置在服务器端。但那又意味着因为使用者的一个小错误,都要给服务器端要返回一串的错误信息。那么,我们何不同时拥有二者呢?不仅仅如此,我们还可以在客户端和服务器端使用同一个javascript函数来保证二者的完全一致性。
看看下面这一小段,请特别注意一下checkMyZip()函数。
复制代码代码如下:
<%@LANGUAGE="JavaScript"%>
<%
//NoASPHere,justaregularHTMLPage
%>
<HTML>
<SCRIPTLANGUAGE="JavaScript">
<!--Hide
functioncheckMyZip(zipCode)
{
varmyRegularExpression=/(^/d{5}$)|(^/d{5}-/d{4}$)/
if(myRegularExpression.test(zipCode)==true)
{
returnnothingIsWrong();
}
else
{
returnsomethingIsWrong();
}
}
functionnothingIsWrong()
{
//Donothing
returntrue
}
functionsomethingIsWrong()
{
alert("Somethingiswrongwiththezipcodeyouprovided.")
document.zipCodeForm.zipCodeText.focus()
returnfalse;
}
//StopHiding-->
</SCRIPT>
<STRONG>TypeavalidU.S.Postalzipcodeintothebox,andsubmitit.</STRONG>
<FORMNAME="zipCodeForm"ACTION="script05a.asp"METHOD="Post"
onSubmit="returncheckMyZip(document.zipCodeForm.zipCodeText.value)">
<INPUTTYPE="Text"NAME="zipCodeText"><BR>
<BR>
<INPUTTYPE="Submit"VALUE="Submit">
</FORM>
</HTML>
我们在本课中看到的就是作为你用javascript来编写asp脚本的一个最大的回报。看看下边的脚本,然后再次注意checkMyZip()函数。
复制代码代码如下:
<%@LANGUAGE="JavaScript"%>
<%
functioncheckMyZip(zipCode)
{
varmyRegularExpression=/(^/d{5}$)|(^/d{5}-/d{4}$)/