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

Form validation script works in IE but not Mozilla

P: n/a
Hi
I hope someone can help me. I have a client side form validation script
which works perfectly in IE but clicking "Submit" in Mozilla does
nothing - the form won't submit.
Is there something I can use that will work for both browsers, or is
there something wrong with my code? I seem to think that the problem
lies with the "onclick" area of the form.
This is my code, such as it is...

<SCRIPT LANGUAGE="JavaScript">
function ValidateEntries() {

if (MyForm.InputName.value == "") {
alert ("\nPlease enter your first name.")
return false;
}

if (MyForm.InputSurname.value == "") {
alert ("\nPlease enter your Surname.")
return false;
}

if ((MyForm.InputEmail.value == "") ||
(MyForm.InputEmail.value.indexOf('@') == -1) ||
(MyForm.InputEmail.value.indexOf('.') == -1)) {
alert ("\nPlease enter your Email Address.")
return false;
}

if (MyForm.InputAddress.value == "") {
alert ("\nPlease enter your Address.")
return false;
}

if (MyForm.InputPostalcode.value == "") {
alert ("\nPlease enter your Postalcode.")
return false;
}

if (MyForm.InputTelephoneNumber.value == "") {
alert ("\nPlease enter your Telephone Number.")
return false;
}

if (MyForm.InputComments.value == "") {
alert ("\nPlease type your Comments.")
return false;
}
else return document.MyForm.submit();
}
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Untitled</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1"></head>

<body bgcolor="#CCCCCC" leftmargin="5" topmargin="0">
<Form name="MyForm" action="sendmail.asp" method="post">

<table width="534" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><font size="2" face="Arial, Helvetica,
sans-serif">Name
: </font></td>
<td valign="top"><input type="text" name="InputName"></td>
</tr>
<tr>
<td valign="top"><font size="2" face="Arial, Helvetica,
sans-serif">Surname
: </font></td>
<td valign="top"><input type="text" name="InputSurname"></td>
</tr>
<tr>
<td valign="top"><font size="2" face="Arial, Helvetica,
sans-serif">e-mail
Address: </font></td>
<td valign="top"><input type="text" name="InputEmail"></td>
</tr>
<tr>
<td valign="top"><font size="2" face="Arial, Helvetica,
sans-serif">Physical
Address : </font></td>
<td valign="top"><textarea name="InputAddress" rows="5"
cols="30"></textarea></td>
</tr>
<tr>
<td valign="top"><font size="2" face="Arial, Helvetica,
sans-serif">Postal
code : </font></td>
<td valign="top"><input type="text" name="InputPostalcode"></td>
</tr>
<tr>
<td valign="top"><font size="2" face="Arial, Helvetica,
sans-serif">Telephone
Number : </font></td>
<td valign="top"><input type="text"
name="InputTelephoneNumber"></td>
</tr>
<tr>
<td valign="top"><font size="2" face="Arial, Helvetica,
sans-serif">Message
: </font></td>
<td valign="top"><textarea name="InputComments" rows="5"
cols="30"></textarea></td>
</tr>
<tr>
<td colspan="2" valign="top"> <input type="button" value="Submit"
onclick="ValidateEntries()">
</td>
</tr>
</table>
</Form>
</body>

If anyone could help me, I would seriously reconsider dashing my
forehead against the desk
</thanks>

Jul 23 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
we********@hyperlink.co.za writes:
I have a client side form validation script which works perfectly in
IE but clicking "Submit" in Mozilla does nothing - the form won't
submit.
Then you are doing something wrong. It should submit, just without
the validation, otherwise it won't work if Javascript is turned off.
Is there something I can use that will work for both browsers, or is
there something wrong with my code?
It's your code.
<SCRIPT LANGUAGE="JavaScript">
Should be
<script type="text/javascript">
The type attribute is required by HTML, and is always sufficient.
function ValidateEntries() {

if (MyForm.InputName.value == "") {
You have not declared a variable called MyForm. You assume that your
browser will create a global variable for your named form. Not all
browsers do that (IE does, Mozilla doesn't).

When referring to a form called "MyForm", always use:
document.forms['MyForm']
To save typing, you can assign the form reference to a variable:

var myForm = document.forms['MyForm'];

Then do
if (myForm.elements['InputName'].value == "") {

Ditto for the remaining tests.
(You could collect all the errors in one go, instead of only
showing the first one. That would speed up the user)

.... else return document.MyForm.submit();
There should be no need for this, just return true, if you
make your page to work without javascript enabled.
}
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
ICK. There should not be anything before the DOCTYPE declaration
in an HTML page. In particular, script elements are only valid
inside the HEAD and BODY elements. Please make your HTML validate!
<Form name="MyForm" action="sendmail.asp" method="post"> .... <input type="button" value="Submit" onclick="ValidateEntries()">


This only works if Javascript is enabled. On the other hand, pressing
return in one of the text fields might submit the form without any
validation. A better approach is:

---
<form ... onsubmit="return ValidateEntries();">
...
<input type="submit" value="Submit">
---

Good luck.
/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 23 '05 #2

P: n/a
Lasse Reichstein Nielsen wrote:
To save typing[...]
and increase efficiency,
you can assign the form reference to a variable: [...]

PointedEars
Jul 23 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.