Go Back   SitePoint Forums > Forum Index > Program Your Site > JavaScript
Newsletter FAQ Members List Calendar Mark Forums Read

New to SitePoint Forums? Register here for free!

SitePoint Sponsor
 
Reply
 
Thread Tools Display Modes
Old Aug 28, 2002, 11:21   #1
JohnSaunders
Git-R-Done
 
Join Date: Nov 2001
Posts: 1,195
Can Somebody Tell Me If There's Any Errors In This Script?

I found the script below on Google that makes sure the visitor enters a zip code that matches the state they enter. I can't get it to work for some reason and I was wondering if anybody can point out any errors. It looks like the myzip in the third function should be zip correct?

Code:
<script language="JavaScript" type="text/javascript">
<!--
	// Expects a 5-digit zip code. Prevents user from entering 5 identical digits, as in 44444.

	function checkZipDigitsIdentical(zip){
	  sample=zip.substring(0,1)
	  for(i=1;i<zip.length;i++){
	    if ((zip.substring(i,i+1))!=sample){
		  return
		}
	  }
	  error=1
	  msg=zip+" is not an acceptable zip code."
	}

	// Expects digits only, and checks that they aren't sequential, i.e. 23456 or 65432

	function checkZipDigitsSequential(zip){
	  first=zip.substring(0,1)
	  second=zip.substring(1,2)
	  diff=parseInt(first)-parseInt(second)
	  if(Math.abs(diff)!=1) return
	  if (diff == -1){  //ascending order
	    for(i=0; i<zip.length-1; i++){
	      if ((parseInt(zip.substring(i,i+1)))!=(parseInt(zip.substring(i+1,i+2))-1)) return
	    }
	  }
	  if (diff == 1){   //descending order
	    for(i=0;i<zip.length-1;i++){
	      if ((parseInt(zip.substring(i,i+1)))!=(parseInt(zip.substring(i+1,i+2))+1)) return
	    }
	  }
	  error=1
	  msg=zip+" is not an acceptable zip code."
	}
	
	// Check to make sure the zip code matches the state.
	
	function checkIllegalZip(myzip,state) {
	  var ZipAA = "340";
	  var ZipAE = "090,091,092,093,094,095,096,097,098";
	  var ZipAK = "995,996,997,998,999";
	  var ZipAL = "350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,393";
	  var ZipAP = "962,963,964,965,966,968";
	  var ZipAR = "381,716,717,718,719,720,721,722,723,724,725,726,727,728,729,755";
	  var ZipAS = "967";
	  var ZipAZ = "850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,873,879,880";
	  var ZipCA = "895,900,901,902,903,904,905,906,907,908,910,911,912,913,914,915,916,917,918,918,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966";
	  var ZipCO = "800,801,802,803,805,806,807,808,809,810,811,812,813,814,815,816";
	  var ZipCT = "060,061,062,063,064,065,066,067,068,069";
	  var ZipDC = "200,201,202,203,204,205";
	  var ZipDE = "197,198,199,216,218";
	  var ZipFL = "315,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349";
	  var ZipGA = "298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,374,399";
	  var ZipHI = "967,968,969";
	  var ZipIA = "500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,612,681";
	  var ZipID = "832,833,834,835,836,837,838,970,990";
	  var ZipIL = "527,528,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,631,634,635";
	  var ZipIN = "400,420,423,424,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479";
	  var ZipKS = "641,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,678,679,739";
	  var ZipKY = "400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,452,471,476";
	  var ZipLA = "700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,717";
	  var ZipMA = "010,011,012,013,014,015,016,017,018,019,020,021,022,023,024,025,026,027,055";
	  var ZipMD = "203,206,207,208,209,210,211,212,213,214,215,216,217,218,219,267";
	  var ZipME = "038,039,040,041,042,043,044,045,046,047,048,049";
	  var ZipMI = "480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499";
	  var ZipMN = "550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,540,581";
	  var ZipMO = "621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658";
	  var ZipMS = "369,381,386,387,388,389,390,391,392,393,394,395,396,397";
	  var ZipMT = "590,591,592,593,594,595,596,597,598,599,821";
	  var ZipNC = "270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,297";
	  var ZipND = "565,557,580,581,582,583,584,585,586,587,588";
	  var ZipNE = "515,516,680,681,682,683,684,685,686,687,688,689,690,691,692,693";
	  var ZipNH = "030,031,032,033,034,035,036,036,037,038,039,050";
	  var ZipNJ = "070,071,072,073,074,075,076,077,078,079,080,081,082,083,084,085,086,087,088,089";
	  var ZipNM = "865,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884";
	  var ZipNV = "889,890,891,892,893,894,895,896,897,898,961";
	  var ZipNY = "003,004,005,090,091,092,093,094,095,096,097,098,099,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149";
	  var ZipOH = "410,430,431,432,433,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,470";
	  var ZipOK = "730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,748,749,679";
	  var ZipOR = "836,970,971,972,973,974,975,976,977,978,979,986";
	  var ZipPA = "150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,213,260";
	  var ZipPR = "006,007,008,009";
	  var ZipRI = "027,028,029";
	  var ZipSC = "282,290,291,292,293,294,295,296,297,298,299,309,314";
	  var ZipSD = "570,571,572,573,574,575,576,577";
	  var ZipTN = "307,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,723";
	  var ZipTX = "718,733,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,885";
	  var ZipUT = "840,841,842,843,844,845,846,847,893,898";
	  var ZipVA = "201,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246";
	  var ZipVI = "008";
	  var ZipVT = "050,051,052,053,054,055,056,057,058,059,035,036,037";
	  var ZipWA = "835,838,972,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994";
	  var ZipWI = "498,499,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,551";
	  var ZipWV = "246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268";
	  var ZipWY = "591,820,821,823,824,825,826,827,828,829,830,831";
	  var zip3 = myzip.value.substring(0,3)
	  if( eval("Zip" + state.value.toUpperCase()).indexOf(zip3,0) == -1 ) {
	    error = 1
		msg = "'" + myzip.value + "' is not a valid zip code for state " + state.value.toUpperCase() + "."
	  }
	}

//-->
</script>
<form action="" name="test" onSubmit="checkZipDigitsSequential(zip)">
<input type="text" name="state">
<br>
<input type="text" name="zip">
<br>
<input type="submit" value="Go">
</form>

Any help would be greatly appreciate.


Thanks,

John
JohnSaunders is offline   Reply With Quote
Reply

Bookmarks

« Previous Thread | Next Thread »

Thread Tools
Display Modes

 
Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Sponsored Links
 
Forum Jump


All times are GMT -7. The time now is 18:28.


Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Copyright 1998-2009, SitePoint Pty Ltd. All Rights Reserved