程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> javascript asp教程第五課--合二為一

javascript asp教程第五課--合二為一

編輯:關於ASP編程
兩條防線,一個函數:
試問你如何能保證客戶端和服務器端具有相同的功能?表單域的驗證閃現在我們眼前。別人把你的html復制到另外一個腳本,然後改變客戶端的表單域驗證--這並不是一件難事。擺在眼前的解決方法是將表單域的驗證放置在服務器端。但那又意味著因為使用者的一個小錯誤,都要給服務器端要返回一串的錯誤信息。那麼,我們何不同時擁有二者呢?不僅僅如此,我們還可以在客戶端和服務器端使用同一個javascript函數來保證二者的完全一致性。
看看下面這一小段,請特別注意一下checkMyZip()函數。
復制代碼 代碼如下:
<%@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>



我們在本課中看到的就是作為你用javascript來編寫asp腳本的一個最大的回報。看看下邊的腳本,然後再次注意checkMyZip()函數。 
復制代碼 代碼如下:
<%@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")
    }

%>



這並不是最完美的列子,但是它包含了我們所要講授的要點。客戶端和服務器端嚴正數據的函數是完全一樣的。支持函數是一樣的餓,但是變化確是明顯的。僅僅是個玩笑,讓我們來看看下面的腳本。它並沒有客戶端驗證。
復制代碼 代碼如下:
<%@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>



第一部分小節:
這是本課程計劃第一部分的小節。有過用vbscript編寫asp的朋友並不需要在本站上有更進一步的研究。他們現在可以使用他們客戶端腳本的使用技巧去將任何的函數(子程序),任何的頁面,或者是任何的應用程序轉換為javascript。
其他的朋友則需要留下來繼續我們在第二部分的旅程。

本節原文及范例地址:http://aspjavascript.com/lesson05.asp
原文作者:James Clark 翻譯:huahua 轉載請注明
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved