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