I have simple js form validation, and it doesn't work, no matter how enabled the browser is. I've tried everything. I even tried: <form action="mailto:..." > but it'll popup the windows alert about using the email program (outlook/outlook express) completely ignoring the js validation.

please your help.

this is the file:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-Transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en" dir="ltr">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title>form test</title>

        <script type="text/javascript">
        <!--
document.write("If this text is displayed, your browser supports scripting!") 

            function validate(thisForm)
            {
                if(thisForm.Fname.value=="")
                {
                    alert("Please enter first name");
                    thisForm.Fname.focus();
                    return false;
                }
                if(thisForm.Lname.value=="")
                {
                    alert("Please enter last name");
                    thisForm.Lname.focus();
                    return false;
                }   
            return true;
            }
//-->
        </script>
        <noscript>JavaScript is NOT enabled!</noscript>

    </head>
    <body>
        <form action="mail.php" name="thisForm" id="thisForm" method="post" onsubmit="return validate(thisForm)" enctype="text/plain">

        <p>First Name <input type="text" name="Fname" id="Fname" size="30" maxlength="25" /></p>
        <p>Last Name <input type="text" name="Lname" id="Lname" size="30" maxlength="25" /></p>
        <p>Password &nbsp;&nbsp;<input type="password" name="psswd" size="30" maxlength="8" /></p>

        <h4>your favorite food</h4>
        <p><input type="checkbox" name="food" value="pizza" checked="checked" />Pizza<br />
            <input type="checkbox" name="food" value="chicken" />chicken<br />
            <input type="checkbox" name="food" value="eggs" />eggs<br /></p>

        <h4>Your gender</h4>
        <p><input type="radio" name="gender" value="female" checked="checked" />female<br />
            <input type="radio" name="gender" value="male" />male<br /></p>

        <p><input type="submit" value="send" /><input type="reset" value="clear" /></p>
        </form>

<p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Strict" height="31" width="88"  /></a></p>

    </body></html>

Edited 3 Years Ago by diafol: fixed formatting

thanks for your response.

yes, but now all radio button in internet-security are enabled and still i have this problem.

Hi orr16875,

Security has nothing to do with it as far as I can tell... We are just refering to the DOM elements incorrectly.

Check it out, changed parts are bolded:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-Transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>form test</title>

<script type="text/javascript">
<!--
document.write("If this text is displayed, your browser supports scripting!")

function validate([B]el[/B])
{
  if([B]el.Fname[/B].value=="")
  {
    alert("Please enter first name");
    [B]el.Fname[/B].focus();
    return false;
  }
  if([B]el.Lname[/B].value=="")
  {
    alert("Please enter last name");
    [B]el.Lname[/B].focus();
    return false;
  }
  return true;
}
//-->
</script>
<noscript>JavaScript is NOT enabled!</noscript>

</head>
<body>
<form action="mail.php" name="thisForm" id="thisForm" method="post" enctype="text/plain" onSubmit="return validate([B]this[/B]);">

<p>First Name <input type="text" name="Fname" id="Fname" size="30" maxlength="25" /></p>
<p>Last Name <input type="text" name="Lname" id="Lname" size="30" maxlength="25" /></p>
<p>Password &nbsp;&nbsp;<input type="password" name="psswd" size="30" maxlength="8" /></p>

<h4>your favorite food</h4>
<p><input type="checkbox" name="food" value="pizza" checked="checked" />Pizza<br />
<input type="checkbox" name="food" value="chicken" />chicken<br />
<input type="checkbox" name="food" value="eggs" />eggs<br /></p>

<h4>Your gender</h4>
<p><input type="radio" name="gender" value="female" checked="checked" />female<br />
<input type="radio" name="gender" value="male" />male<br /></p>

<p><input type="submit" value="send" /><input type="reset" value="clear" /></p>
</form>

<p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Strict" height="31" width="88" /></a></p>

</body></html>

Works in IE and Firefox!

thanks Chrelad for your response.

I've made the changes like you suggested but still no luck.

Hi orr16875,

Hmmm, well, sorry about misleading you there. Could you provide us with an error or anything that seams amiss?

Thanks orr16875

it's ok, you're trying to help me.

amm, when i click the form_test.html file it will show up. I leave it blank and click "submit", it'll open a new page - the mail.php, and won't show up the content of thakyou.htm file.

Moving the script and noscript tags and content inside the body (where they belong), and changing onSubmit to onsubmit makes the file Valid XHTML 1.0 Transitional (according to w3.org).

Either way, the file works on Konqueror and Iceweasel on Debian/Linux.

i've moved the <script> to body. the onsubmit is same.

the IE7 version is: 7.0.6000.16575

it works on FF2, yeeeee

but still doesn't work IE7. still need your help.

i've moved the <script> to body. the onsubmit is same.

the IE7 version is: 7.0.6000.16575

it works on FF2, yeeeee

but still doesn't work IE7. still need your help.

Attachments
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-Transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en" dir="ltr">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<title>form test</title>

		
		
		
	</head>
	<body>

	<!-- <noscript>JavaScript is NOT enabled!</noscript> -->

	<script type="text/javascript">
		<!--
document.write("If this text is displayed, your browser supports scripting!") 

			function validate(thisform)
			{
			with(thisform)
				if(thisform.Fname.value=="")
				{
					alert("Please enter first name");
					thisform.Fname.focus();
					return false;
				}
				if(thisform.Lname.value=="")
				{
					alert("Please enter last name");
					thisform.Lname.focus();
					return false;
				}	
			return true;
			}
//-->
		</script>

		<form action="mail.php" name="thisform" id="thisform" method="post" enctype="text/plain" onsubmit="return validate(this)" >
			
		<p>First Name <input type="text" name="Fname" id="Fname" size="30" maxlength="25" /></p>
		<p>Last Name <input type="text" name="Lname" id="Lname" size="30" maxlength="25" /></p>
		<p>Password &nbsp;&nbsp;<input type="password" name="psswd" size="30" maxlength="8" /></p>

		<h4>your favorite food</h4>
		<p><input type="checkbox" name="food" value="pizza" checked="checked" />Pizza<br />
			<input type="checkbox" name="food" value="chicken" />chicken<br />
			<input type="checkbox" name="food" value="eggs" />eggs<br /></p>

		<h4>Your gender</h4>
		<p><input type="radio" name="gender" value="female" checked="checked" />female<br />
			<input type="radio" name="gender" value="male" />male<br /></p>

		<p><input type="submit" value="send" /><input type="reset" value="clear" /></p>
		</form>

<p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Strict" height="31" width="88"  /></a></p>
		
	</body></html>
<?php

$ThanksURL = "thankyou.html";
$to = 'gr.orly@gmail.com';
$from = 'gr.orly@gmail.com';
$body .= "<html><body>";
	while (list($key, $value) =  each($HTTP_POST_VARS))
	{
		$body .= $key . ' = ' . $value . "<br>"."\r\n";
	}
$body .= "</table></body></html>";
	
	$headers = "MIME-Version: 1.0\r\n";
	$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
	$headers .= "From: $from\r\n";
	$headers .= "Reply-To:$from\r\n";
	$success = mail($to, $Fname, $Lname, $body, $headers);

header(Location: $ThanksURL");
?>

Hmm. It works for me on IE7.0.5730. However, I *can* make it ignore the javascript by DISABLING Active Scripting (Tools->Internet Options->Security...) I can think of no other reason for this to happen.

I can even make it ignore the javascript in Netscape 8.1 (displaying like IE) by disabling javascript for Local Files (in Tools->Options->Site Controls). Of course, because browsers never implement things consistently or the same way, NS 8.1 ignore that very setting when displaying like FireFox. Sigh.

So it goes back to a security setting. Somehow, you have turned off javascript in IE7. Have you checked all the relevant security zones? Is any one site being treated different from the others?

N

This article has been dead for over six months. Start a new discussion instead.