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

JavaScript Form Validation Doesn't Work In Netscape

P: n/a
My JavaScript Form Validation doesn't work at all in Netscape, but it
works fine in IE.

I made some of the suggested changes which enabled it to work in IE.
I couldn't make all the changes because then it didn't work in IE.

How can I enable this javascipt form validation to work in Netscape?
When I use netscape, none of the alert boxes appear. It submits the
form without validating anything.

In IE, I get all the alert boxes and everything is validated.

Thanks.

The relevant code is:

<script language="JavaScript" type="text/javascript">
<!--
function validate(theForm)
{
var validity = true; // assume valid
// If user doesn't enter required name, alert them
if(frmComments.name.value == '' && validity == true)
{
alert('Your full name is required.\nPlease enter your full
name!');
validity = false;
frmComments.name.focus();
return false;
}
// If user doesn't enter required company, alert them
if(frmComments.company.value == '' && validity == true)
{
alert('Your company name is required.\n' +
'Please enter the name of your company!');
validity = false;
frmComments.company.focus();
return false;
}
// If user doesn't enter the correct email format alert them
// Email is not required
var pattern1 = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
if (!pattern1.test(frmComments.email.value) && validity == true)
{
alert('Invalid E-mail Address!\n' +
'Please re-enter.')
frmComments.email.focus();
validity = false;
return false;
}
// If user doesn't enter the correct zip code format alert them
// Zip Code is not required
if(!frmComments.zip.value == '' )
{
var pattern2 = /^\d{5}$/ ;
if(!pattern2.test(frmComments.zip.value))
{
if(!pattern2.test(frmComments.zip.value) && validity ==
true)
{
alert('Invalid Zip Code!\nMust be in form 12345.\n' +
'Please re-enter.');* * * *
frmComments.zip.focus();
validity = false;
return false;
}
}
}
// If user doesn't enter the correct phone number format alert
them
// Phone Number is not required
if(!frmComments.phone.value == '')
{
var pattern3 = /\d{3}\-\d{3}\-\d{4}/;
if(!pattern3.test(frmComments.phone.value))
{
if(!pattern3.test(frmComments.phone.value)&& validity ==
true)
{
alert('Invalid Phone Number!\nMust be in form
555-555-5555.\n' +
'Please re-enter.');* * * *
frmComments.phone.focus();
validity = false;
return false;
}
}
// If data entered is valid, confirm submission
if(validity == true)
return formSubmit();
}

// Confirm submission
function formSubmit()
{
return ( confirm('Are you sure you want to submit?'));
frmComments.name.focus();
}

// Confirm clearing of fields
function formReset()
{
return ( confirm( "Are you sure you want to reset?" ) )
frmComments.name.focus();
}
// -->
</script>

<form id="frmComments"
action="http://matrix.csis.pace.edu/~f03-it604-s03/cgi-bin/comments.pl"
method="post" onSubmit="return validate(this);" onReset="return
formReset(this)">

<input type="submit" align="right" value="Submit" name="submit"
onchange="frmComments.name.focus();"
onblur="frmComments.name.focus();">
<input type="reset" align="right" value="Clear" name="reset">

The link to this page is:
http://matrix.csis.pace.edu/~f03-it6.../comments.html
Jul 20 '05 #1
Share this Question
Share on Google+
7 Replies


P: n/a

"AnnMarie" <ca*****@optonline.net> schreef in bericht
news:c6**************************@posting.google.c om...

How can I enable this javascipt form validation to work in Netscape?
When I use netscape, none of the alert boxes appear. It submits the
form without validating anything.

In IE, I get all the alert boxes and everything is validated.

IE will accept formName.property, while Netscape expects
document.formName.property.

The relevant code is: ..... function validate(theForm)
{
var validity = true; // assume valid
// If user doesn't enter required name, alert them
if(frmComments.name.value == '' && validity == true)
{


Replace frmComments with theForm, e.g.:
if (theForm.name.value == '')

But since name is a reserved property within the Form object, it's saver to
use the following syntax:
if (theForm.elements['name'].value == '')
JW

Jul 20 '05 #2

P: n/a
"Janwillem Borleffs" <jw@jwscripts.com> writes:
IE will accept formName.property, while Netscape expects
document.formName.property.


And the W3C DOM specification expects
document.forms.formName
or
document.forms['formName']
I prefer the second. It works, even if the formName contains special
characters.

/L
--
Lasse Reichstein Nielsen - lr*@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'
Jul 20 '05 #3

P: n/a
Thanks for your help. I made the suggested changes and it now also
works in Netscape. I also had to change the form attribute in the form
tag from id to name. But, name doesn't validate with W3C validator and
validation is a requirement for my project.

How can I make an html page with a form validate and work in IE and
netscape?

Thanks.

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
Jul 20 '05 #4

P: n/a
AnnMarie Caruso <ca*****@optonline.net> writes:
Thanks for your help. I made the suggested changes and it now also
works in Netscape.
Which Netscape? I guess Netscape 4, since Netscape 6+ will definitly
work with id.
I also had to change the form attribute in the form
tag from id to name.
The id attribute is the recommended one.
But, name doesn't validate with W3C validator and
validation is a requirement for my project.


Then you have to change to a DOCTYPE that accepts both, e.g., HTML
4.01 Transitional. Then add both "id" and "name" attributes to the
form tag, with identical values.

/L
--
Lasse Reichstein Nielsen - lr*@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'
Jul 20 '05 #5

P: n/a
Thanks again. It worked. I am using Netscape 7.02. I changed the
DOCTYPE from 4.0 to 4.01 and used both id and name and it validates and
works in both netscape and IE.

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
Jul 20 '05 #6

P: n/a

"Janwillem Borleffs" <jw@jwscripts.com> wrote in message
news:3f*********************@news.wanadoo.nl...

"AnnMarie" <ca*****@optonline.net> schreef in bericht
news:c6**************************@posting.google.c om...

How can I enable this javascipt form validation to work in Netscape?
When I use netscape, none of the alert boxes appear. It submits the
form without validating anything.

In IE, I get all the alert boxes and everything is validated.

IE will accept formName.property, while Netscape expects
document.formName.property.

The relevant code is:

....
function validate(theForm)
{
var validity = true; // assume valid
// If user doesn't enter required name, alert them
if(frmComments.name.value == '' && validity == true)
{


Replace frmComments with theForm, e.g.:
if (theForm.name.value == '')

But since name is a reserved property within the Form object, it's saver

to use the following syntax:
if (theForm.elements['name'].value == '')
JW


I'm a newbie with js but had a look at the original post and wondered if you
folks were refering to the fact that the <FORM> tag did not contain a NAME
attribute... It should, true?

randelld
Jul 20 '05 #7

P: n/a
The form tag should contain the name attriubute. The problem I had was
that it didn't validate with W3C validator. So I changed the DOCTYPE to
4.01 and included the name and id attribute and then it validated. I
hope this helps.

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
Jul 20 '05 #8

This discussion thread is closed

Replies have been disabled for this discussion.