兩條防線,一個(gè)函數(shù):
試問(wèn)你如何能保證客戶端和服務(wù)器端具有相同的功能?表單域的驗(yàn)證閃現(xiàn)在我們眼前。別人把你的html復(fù)制到另外一個(gè)腳本,然后改變客戶端的表單域驗(yàn)證--這并不是一件難事。擺在眼前的解決方法是將表單域的驗(yàn)證放置在服務(wù)器端。但那又意味著因?yàn)槭褂谜叩囊粋€(gè)小錯(cuò)誤,都要給服務(wù)器端要返回一串的錯(cuò)誤信息。那么,我們何不同時(shí)擁有二者呢?不僅僅如此,我們還可以在客戶端和服務(wù)器端使用同一個(gè)javascript函數(shù)來(lái)保證二者的完全一致性。
看看下面這一小段,請(qǐng)?zhí)貏e注意一下checkMyZip()函數(shù)。
復(fù)制代碼 代碼如下:
%@LANGUAGE="JavaScript"%>
%
//No ASP Here, just a regular HTML Page
%>
HTML>
SCRIPT LANGUAGE="JavaScript">
!--Hide
function checkMyZip(zipCode)
{
var myRegularExpression=/(^\d{5}$)|(^\d{5}-\d{4}$)/
if (myRegularExpression.test(zipCode) == true)
{
return nothingIsWrong();
}
else
{
return somethingIsWrong();
}
}
function nothingIsWrong()
{
//Do nothing
return true
}
function somethingIsWrong()
{
alert("Something is wrong with the zip code you provided.")
document.zipCodeForm.zipCodeText.focus()
return false;
}
//Stop Hiding-->
/SCRIPT>
STRONG>Type a valid U.S. Postal zip code into the box, and submit it./STRONG>
FORM NAME="zipCodeForm" ACTION="script05a.asp" METHOD="Post"
onSubmit="return checkMyZip(document.zipCodeForm.zipCodeText.value)">
INPUT TYPE="Text" NAME="zipCodeText">BR>
BR>
INPUT TYPE="Submit" VALUE="Submit">
/FORM>
/HTML>
我們?cè)诒菊n中看到的就是作為你用javascript來(lái)編寫(xiě)asp腳本的一個(gè)最大的回報(bào)。看看下邊的腳本,然后再次注意checkMyZip()函數(shù)。
復(fù)制代碼 代碼如下:
%@LANGUAGE="JavaScript"%>
%
function checkMyZip(zipCode)
{
var myRegularExpression=/(^\d{5}$)|(^\d{5}-\d{4}$)/
if (myRegularExpression.test(zipCode) == true)
{
return nothingIsWrong();
}
else
{
return somethingIsWrong();
}
}
function nothingIsWrong()
{
//Do nothing
return true
}
function somethingIsWrong()
{
return false;
}
var zipCode=new String(Request.Form("zipCodeText"))
if (checkMyZip(zipCode)==true)
{
Response.Write("HTML>\r")
Response.Write("The zip code you provided... ")
Response.Write("FONT COLOR=\"RED\">")
Response.Write(zipCode + "/FONT> is good.\r")
Response.Write("/HTML>\r")
}
else
{
Response.Write("HTML>\r")
Response.Write("The zip code you provided... ")
Response.Write("FONT COLOR=\"RED\">")
Response.Write(zipCode + "/FONT> has a problem.\r")
Response.Write("/HTML>\r")
}
%>
這并不是最完美的列子,但是它包含了我們所要講授的要點(diǎn)??蛻舳撕头?wù)器端嚴(yán)正數(shù)據(jù)的函數(shù)是完全一樣的。支持函數(shù)是一樣的餓,但是變化確是明顯的。僅僅是個(gè)玩笑,讓我們來(lái)看看下面的腳本。它并沒(méi)有客戶端驗(yàn)證。
復(fù)制代碼 代碼如下:
%@LANGUAGE="JavaScript"%>
%
//No ASP Here, just a regular HTML Page
%>
HTML>
STRONG>Type a zip code (with no client side validation)
into the box submit it./STRONG>
FORM NAME="zipCodeForm" ACTION="script05a.asp" METHOD="Post">
INPUT TYPE="Text" NAME="zipCodeText">BR>
BR>
INPUT TYPE="Submit" VALUE="Submit">
/FORM>
/HTML>
第一部分小節(jié):
這是本課程計(jì)劃第一部分的小節(jié)。有過(guò)用vbscript編寫(xiě)asp的朋友并不需要在本站上有更進(jìn)一步的研究。他們現(xiàn)在可以使用他們客戶端腳本的使用技巧去將任何的函數(shù)(子程序),任何的頁(yè)面,或者是任何的應(yīng)用程序轉(zhuǎn)換為javascript。
其他的朋友則需要留下來(lái)繼續(xù)我們?cè)诘诙糠值穆贸獭?
本節(jié)原文及范例地址:http://aspjavascript.com/lesson05.asp
原文作者:James Clark 翻譯:huahua 轉(zhuǎn)載請(qǐng)注明