Reputation: 77
The data entered should be processed to check if the zip code is included in service area (This includes zip codes from 63121 to 69999).
This is what I have done I know I'm doing pattern matching wrong. Any help will be appreciated!
function validate() {
var zipCode = document.getElementById("zip");
var ok = zipCode.value.search(/^(6|9)\d{3,9}\d{1,9}\d{2,9}\d{1,9}$/);
if (ok != 0) {
alert("Sorry no service");
zipCode.focus();
zipCode.select();
return false;
} else
return true;
}
HTML Part
<form name = "myForm" action = "" >
<table align = "center" bgcolor = "FF6600" cellspacing = "3" cellpadding = "4" border = "1" style="font-family:Comic Sans;vertical-align:center;">
<caption style="background-color:#FFD700; text-align:left"> <font size="5" color="black">Check Coverage: </font></caption>
<tr>
<td class="info">First Name</td>
<td><input type = "text" name = "first" class="textright">*</td>
</tr>
<tr>
<td class="info">Phone Number</td>
<td><input type = "text" name = "phone" size="10" maxlength = "12" class="textright" >* (ddd-ddd-dddd)</td>
</tr>
<tr>
<td class="info">Zip Code</td>
<td><input type = "text" id="zip" name = "zip1" size ="5" maxlength = "5" class="textright">* </td>
</tr>
<tr>
<td class="size">* - Required Field</td>
<td><input type = "button" class="but2" value ="Reset"><input type = "submit" class= "but2" onclick="validate()" value ="Check Availability" ></td>
</tr>
</table>
</form>
Upvotes: 0
Views: 447
Reputation:
There is no need to use regex. Since all of the zipcodes you are looking at are all 5 digits long (with no leading zeroes), cast them as an integer and just check the zipcode is in the required range.
function validate() {
var zipCodeField = document.getElementById("zip");
var zipCode = parseInt(zipCodeField.value);
if (!(63121 <= zipCode && zipCode <= 69999)) {
alert("Sorry no service");
zipCodeField.focus();
zipCodeField.select();
return false;
} else {
return true;
}
}
With the update about it not working, I threw together this fiddle. The only thing you need to do is return
the value of the validate()
function, onsubmit
of the form rather than onclick
of the button.
Upvotes: 2
Reputation: 2486
I saw that your requirement is linear..
var x=parseInt(zipcode)
if(zipcode<63121 and zipcode>69999){
alert("Sorry no service");
zipCode.focus();
zipCode.select();
return false;
}
else
{
return true;
}
Upvotes: -1