兩條防線,一個(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)編寫asp腳本的一個(gè)最大的回報(bào)。看看下邊的腳本,然后再次注意checkMyZip()函數(shù)。 復(fù)制代碼 代碼如下: <%@LANGUAGE="JavaScript"%> <% function checkMyZip(zipCode) { var myRegularExpression=/(^/d{5}$)|(^/d{5}-/d{4}$)/