i have modifed a script by Stephen Poley and have got it to work correctly:
http://www.xs4all.nl/~sbpoley/webmatters/formval.html
However, i need the page to be in Strict XHTML 1.1 so i can't do <form name="contactform">. When i try and use the getElementbyId('name') instead of document.forms.contactform.name the script doesnt work.
what am i doing wrong?
Code:
<script type="text/javascript">
<!--
// Only script specific to this form goes here.
// General-purpose routines are in a separate file.
function validateOnSubmit() {
var elem;
var errs=0;
// execute all element validations in reverse order, so focus gets
// set to the first one in error.
if (!ValidateOther(document.getElementbyId('name'), 'nameinfo')) errs += 1;
if (!validateEmail(document.getElementbyId('email'), 'emailinfo', true)) errs += 1;
if (!ValidateOther(document.getElementbyId('subject'), 'subjectinfo')) errs += 1;
if (!ValidateOther(document.getElementbyId('message'), 'messageinfo')) errs += 1;
if (errs>1) alert('There are fields which need correction before sending');
if (errs==1) alert('There is a field which needs correction before sending');
return (errs==0);
};
// -->
</script>
<form onsubmit="return validateOnSubmit()" action="http://www.cems.uwe.ac.uk/~tdrewry/cgi/cgiform.cgi" method="post">
<p>
<label for="name">*Name:</label><br />
<input type="text" name="name" id="name" onchange="ValidateOther(this, 'nameinfo');" />
<label id="nameinfo"> </label><br />
</p>
<p>
<label for="email">*Email:</label><br />
<input type="text" name="email" id="email" onchange="validateEmail(this, 'emailinfo', true);" />
<label id="emailinfo"> </label><br />
</p>
<p>
<label for="subject">*Subject:</label><br />
<input type="text" name="subject" id="subject" onchange="ValidateOther(this, 'subjectinfo');" />
<label id="subjectinfo"> </label><br />
</p>
<p>
<label for="message">*Message:</label><br />
<textarea name="message" id="message" onchange="ValidateOther(this, 'messageinfo');" cols="255" rows="9"></textarea>
<label id="messageinfo"> </label><br />
</p>
<p>
<input type="submit" name="Submit" value="Send" />
</p>
</form>
the whole page can be found
here