form validation: postal / zip codes

A

Axel Foley

I used some of the excellent resources from DITHERING.COM for help in my
groveling newbie attempts to cough up working form validation....

I cut and pasted bits of code to check USA ZIP codes and CANADIAN POSTAL
codes, and merged them into one function that I called validCode. The
<form> tag has an onSubmit call to a general form-checker that works fine to
make sure all fields are filled. But within the form is a ZIP/POSTAL CODE
field, where the onBlur calls the function below: "
onBlur="validCode();".... The form-checking works fine, but when the
"onBlur" is engaged, it gives me an "object expected" error where I'm
defining the "var zip".

If any of you seasoned warriors could lend me a neuron or 2, I owe you a
cappuchino or more...

=============================

function validCode(zip) {
var zip = removeSpaces(zip);
if (!(zip.length == 5 || zip.length == 9 || zip.length == 10)) return
false;
if ((zip.length == 5 || zip.length == 9) && !isNumeric(zip)) return
false;
if (zip.length == 10 && zipcode.search && zipcode.search(/^\d{5}-\d{4}$/)
== -1) return false;
return true;
// Check that a Canadian postal code is valid
if (zip.search) {
zip = removeSpaces(zip);
if (zip.length == 6 && zip.search(/^[a-zA-Z]\d[a-zA-Z]\d[a-zA-Z]\d$/)
!= -1) return true;
else if (zip.length == 7 &&
zip.search(/^[a-zA-Z]\d[a-zA-Z]-\d[a-zA-Z]\d$/) != -1) return true;
else return false;
}
return true;
}
// ---> END
</script>
=============================
 
R

Randy Webb

Axel said:
I used some of the excellent resources from DITHERING.COM for help in my
groveling newbie attempts to cough up working form validation....

I cut and pasted bits of code to check USA ZIP codes and CANADIAN POSTAL
codes, and merged them into one function that I called validCode. The
<form> tag has an onSubmit call to a general form-checker that works fine to
make sure all fields are filled. But within the form is a ZIP/POSTAL CODE
field, where the onBlur calls the function below: "
onBlur="validCode();".... The form-checking works fine, but when the
"onBlur" is engaged, it gives me an "object expected" error where I'm
defining the "var zip".

If any of you seasoned warriors could lend me a neuron or 2, I owe you a
cappuchino or more...

=============================

function validCode(zip) {
var zip = removeSpaces(zip);

You are calling onBlur="validCode();"
but it needs to be:
onBlur="validCode(this.value);"

The function is expecting a parameter, tries to pass a parameter, and
you aren't passing the parameter.

Also, don't use onBlur to check it, use onChange instead. Then, it only
gets checked when its actually been changed. Tabbing through the form
will cause the onBlur to be needlessly fired.
 
D

Dr John Stockton

JRS: In article <vgRCc.14444$HS3.10438@edtnps84>, seen in
I used some of the excellent resources from DITHERING.COM for help in my ?????????
groveling newbie attempts to cough up working form validation....


US codes look like 12345, 123456789, 12345-6789
CA codes look like B2B2B2, B2B 2B2

Consider

function validCode(zip) { var OK // or \s? v
OK = /^(\d{5}|\d{9}|\d{5}-\d{4}|[a-z]\d[a-z]\s*\d[a-z]\d)$/i.test(zip)
return OK }
function validCode(zip) {
var zip = removeSpaces(zip);
...
// Check that a Canadian postal code is valid
if (zip.search) {
zip = removeSpaces(zip);

Did you not already remove them?

IMHO, removing too many spaces is a mistake; for example, Ol 944 5683
has 9 digits, but is much more likely to be an old munged UK phone
number than a new US Zip.

RegExp tested in <URL:http://www.merlyn.demon.co.uk/js-valid.htm#RT>.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,021
Latest member
AkilahJaim

Latest Threads

Top