By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,267 Members | 1,861 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,267 IT Pros & Developers. It's quick & easy.

form validation: postal / zip codes

P: n/a
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>
=============================
Jul 23 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
Axel Foley wrote:
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.

--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/
Jul 23 '05 #2

P: n/a
JRS: In article <vgRCc.14444$HS3.10438@edtnps84>, seen in
news:comp.lang.javascript, Axel Foley <de*******@synchkat.com> posted at
Fri, 25 Jun 2004 08:21:47 :
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>.

--
John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 IE 4
<URL:http://jibbering.com/faq/> JL / RC : FAQ for news:comp.lang.javascript
<URL:http://www.merlyn.demon.co.uk/js-index.htm> jscr maths, dates, sources.
<URL:http://www.merlyn.demon.co.uk/> TP/BP/Delphi/jscr/&c, FAQ items, links.
Jul 23 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.