javascript 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 转载请注明

(0)

相关推荐

  • javascript asp教程第五课--合二为一

    两条防线,一个函数: 试问你如何能保证客户端和服务器端具有相同的功能?表单域的验证闪现在我们眼前.别人把你的html复制到另外一个脚本,然后改变客户端的表单域验证--这并不是一件难事.摆在眼前的解决方法是将表单域的验证放置在服务器端.但那又意味着因为使用者的一个小错误,都要给服务器端要返回一串的错误信息.那么,我们何不同时拥有二者呢?不仅仅如此,我们还可以在客户端和服务器端使用同一个javascript函数来保证二者的完全一致性. 看看下面这一小段,请特别注意一下checkMyZip()函数.

  • javascript asp教程第六课-- response方法

    response 对象:reponse是asp中六个对象之一.它代表了服务器端对浏览器的回应.response有8种方法,9种属性和一个集.在这一课,我们就重点讲述方法.方法:在javascript中,asp方法使用括号.请注意依赖response.buffer的两个方法,我们将在下一课讲到他们.同样应该注意到addheader()和redirect(),因为他们必须优先于write()执行.所有的方法都在上面描述和演示了.下面我将详细讲述每一个方法.我将花点额外的时间来讲述我们用的最多的两个方

  • javascript asp教程第三课 new String() 构造器

    开始:new String() 是本课程计划中较早出现的另一个让人感觉到奇怪的地方.但和转义字符一样, new String()是创建一个成功的asp javascript应用的必须元素.下面是本课的两个脚本:下面是实际上承担重量的脚本:行为中的new String( ):现在我们来看看下面的asp行.Request.Form 我们将在后面有独立的课程来讲授.下面才是我们现在要讲的重点.在request.form中所持有的数据(来自用户的数据)并不是一个javascript数据类型.相反,它是一

  • javascript asp教程第十课--global asa

    Global.asa: First of all, what is a global.asa? It's an optional script file that holds certain "global" information that you can access through the entire ASP appliciation. The global.asa is a plain text file saved with the .asa extension. You

  • javascript asp教程第七课--response属性

    Below is a table of Response Properties along with examples and explanations. Response Properties Buffer Response.Buffer = trueAllows for the buffering of output CacheControl Response.CacheControl="Public" Sets Cache to "Public" or &qu

  • JavaScript初级教程(第五课)第1/4页

    现在你已经了解了计算机编程的基本知识.我们接下来继续研究一下文档对象模型(Document Object Model-DOM).DOM的点击关系起始于窗口对象在每个窗口对象中是一个文档对象(Document object).我们将重点谈谈文档对象,看看如何利用它从你的用户获得各项信息,并且动态显示新的信息. 我们已经看过文件对象的一个属性-图象数组(Images array).在第3课中,文件中第1个图象可以通过改变其src属性被修改. 例: window.document.images[0].

  • javascript asp教程第四课 同时使用vbscript和javascript

    开始: 你能让javascript和vbscript实现从同一个表格里传出音乐.看看下面的脚本: function JSGreeting() { return "Greetings from a JavaScript Function"; } Function VBGreeting() VBGreeting="Greetings from a VBScript Function" End Function Function toDollars(x) toDollar

  • javascript asp教程第十三课--include文件

    Server Side Includes: Experienced JavaScript programmers know that code reuse is good. Experienced JavaScript programmers also know that JavaScript functions are data types. So, we should be able to store a JavaScript function inside a Session Variab

  • javascript asp教程第八课--request对象

    Request Object: Request has five (5) Collections, one (1) Property, and one (1) Method. You'll use the Collections far more than the property or the method. Request Collections: Below is a table of the Request Collections and descriptions of how they

  • javascript asp教程第十一课--Application 对象

    Overview: The Application Object represents a collection of ASP pages. The Application object has zero (0) properties, two (2) collections, two (2) methods, and two (2) events. Get Started: Below are a couple scripts for lesson11. <%@LANGUAGE="Jav

随机推荐