Jamie.ds
04-29-2012, 08:37 PM
I seem to have a problem, the script is meant to check each field one after another, but when it gets to the business number, it seems to skip to the email field if I just enter "d" into the field, where it should give an error.
Form:
<!--The onSubmit in the form tag is activated when the Submit button-->
<form name="contact_form" id="subForm" method="post" action="#" onSubmit="return validateForm();">
<p>
<label for="firstName" class="label">First Name:</label>
<input name="firstName" type="text" id="firstName" /><br />
<label for="lastName" class="label">Last Name:</label>
<input name="lastName" type="text" id="lastName" />
</p>
<p>
<label for="house" class="label">House Name or number:</label>
<input name="house" type="text" class="dual_hack" id="house" /><br />
<label for="street" class="label">Street Name:</label>
<input name="street" type="text" id="street" /><br />
<label for="town" class="label">Town:</label>
<input name="town" type="text" id="town" /><br />
<label for="postCode" class="label">Post Code:</label>
<input name="postCode" type="text" id="postCode" />
</p>
<p>
<label for="businessNumber" class="label">Business number:</label>
<input name="businessNumber" type="text" id="businessNumber" /><br />
<label for="mobileNumber" class="label">Mobile number:</label>
<input name="mobileNumber" type="text" id="mobileNumber" /><br />
<label for="homeNumber" class="label">Home number:</label>
<input name="homeNumber" type="text" id="homeNumber" /><br />
<label for="email" class="label">E-Mail:</label>
<input name="email" type="text" id="email" />
</p>
<p>
<label for="company_type" class="five_line">Type of company?</label>
<label><input name="company_type" type="radio" value="limitedPlc" /> Limited PLC</label><br />
<label><input name="company_type" type="radio" value="soleTrader" /> Sole Trader</label><br />
<label><input name="company_type" type="radio" value="charity" /> Charity</label><br />
<label><input name="company_type" type="radio" value="educational" /> Educational</label>
</p>
<p>
<label for="education_type" class="label">What type of Educational Establishment are you?</label>
<select name="education_menu" class="quad_hack">
<option value="na" selected="selected">N/A</option>
<option value="secondary">Secondary School</option>
<option value="academy">Academy</option>
<option value="sixth_form">Sixth Form</option>
<option value="fe">FE</option>
<option value="he">HE</option>
</select>
</p>
<p>
<label for="annual_amount" class="label">Annual Turnover:</label>
<select name="annual_menu">
<option value="less_50k"><£50,000</option>
<option value="50k_100k">£50,000-£99,999</option>
<option value="100k_500k">£100,000 -£500,000</option>
<option value="500k_more">>£500,000</option>
<option value="confidential">Confidential information</option>
</select>
</p>
<p>
<label for="core_business" class="label">What is your Core Business:</label>
<select name="core_type" multiple>
<option value="theatrical">Theatrical Productions</option>
<option value="film">Film Productions</option>
<option value="travelling">Travelling Theatre</option>
<option value="dance_music">Dance and Musical Production</option>
</select>
</p>
<p>
<label for="enquiry" class="label">Enquiry:</label>
<textarea name="enquiry" type="text" cols="50" rows="6" id="message" />Please Enter your enquiry here.</textarea>
</p>
<input name="submit" id="submit" type="submit" />
<input name="reset" type="reset" value="Reset">
</form>
JS:
//Checks the form for valid input
function validateForm()
{
//Form elements
//Name variables
var firstName=document.forms["contact_form"]["firstName"].value;
var lastName=document.forms["contact_form"]["lastName"].value;
//Address variables
var house=document.forms["contact_form"]["house"].value;
var street=document.forms["contact_form"]["street"].value;
var town=document.forms["contact_form"]["town"].value;
var postCode=document.forms["contact_form"]["postCode"].value;
//Number variables
var businessNumber=document.forms["contact_form"]["businessNumber"].value;
var mobileNumber=document.forms["contact_form"]["mobileNumber"].value;
var homeNumber=document.forms["contact_form"]["homeNumber"].value;
var blength=businessNumber.length;
var mlength=mobileNumber.length;
var hlength=homeNumber.length;
var numeric = /^[0-9]+$/;
//Email variables
var email=document.forms["contact_form"]["email"].value;
var atposition=email.indexOf("@");
var dotposition=email.lastIndexOf(".");
//Radio variables
//Start of validation
//First name
if (firstName==null || firstName=="")
{
alert("First name must be filled out");
return false;
}
//Last name
if (lastName==null || lastName=="")
{
alert("Last name must be filled out");
return false;
}
//House name
if (house==null || house=="")
{
alert("House name must be filled out");
return false;
}
//Street name
if (street==null || street=="")
{
alert("Street name must be filled out");
return false;
}
//Town
if (town==null || town=="")
{
alert("Town must be filled out");
return false;
}
//Post Code
if (postCode==null || postCode=="")
{
alert("Post code must be filled out");
return false;
}
//Phone number
if (homeNumber==null || homeNumber=="") //Check if field is empty
{
if (mobileNumber==null || mobileNumber=="")
{
if (businessNumber==null || businessNumber=="")
{
alert("You must enter a phone number");
return false;
}
else if (blength == "11"){ //Check if number has 11 digits
if (businessNumber.match(numeric)) { //Check if the field only contains numbers
return true;
}
else {
alert ("Only numbers are valid in the Business number field");
return false;
}
}
else if (mlength == "11"){
if (mobileNumber.match(numeric)) {
return true;
}
else {
alert ("Only numbers are valid in the Mobile field field");
return false;
}
}
}
else if (hlength == "11"){
if (homeNumber.match(numeric)) {
return true;
}
}
else {
alert("There must be 11 digits in the Home number field");
return false;
}
}
//Email
if (atposition<1 || dotposition<atposition+2 || dotposition+2>=email.length)
{
alert("Not a valid email address");
return false;
}
}
Form:
<!--The onSubmit in the form tag is activated when the Submit button-->
<form name="contact_form" id="subForm" method="post" action="#" onSubmit="return validateForm();">
<p>
<label for="firstName" class="label">First Name:</label>
<input name="firstName" type="text" id="firstName" /><br />
<label for="lastName" class="label">Last Name:</label>
<input name="lastName" type="text" id="lastName" />
</p>
<p>
<label for="house" class="label">House Name or number:</label>
<input name="house" type="text" class="dual_hack" id="house" /><br />
<label for="street" class="label">Street Name:</label>
<input name="street" type="text" id="street" /><br />
<label for="town" class="label">Town:</label>
<input name="town" type="text" id="town" /><br />
<label for="postCode" class="label">Post Code:</label>
<input name="postCode" type="text" id="postCode" />
</p>
<p>
<label for="businessNumber" class="label">Business number:</label>
<input name="businessNumber" type="text" id="businessNumber" /><br />
<label for="mobileNumber" class="label">Mobile number:</label>
<input name="mobileNumber" type="text" id="mobileNumber" /><br />
<label for="homeNumber" class="label">Home number:</label>
<input name="homeNumber" type="text" id="homeNumber" /><br />
<label for="email" class="label">E-Mail:</label>
<input name="email" type="text" id="email" />
</p>
<p>
<label for="company_type" class="five_line">Type of company?</label>
<label><input name="company_type" type="radio" value="limitedPlc" /> Limited PLC</label><br />
<label><input name="company_type" type="radio" value="soleTrader" /> Sole Trader</label><br />
<label><input name="company_type" type="radio" value="charity" /> Charity</label><br />
<label><input name="company_type" type="radio" value="educational" /> Educational</label>
</p>
<p>
<label for="education_type" class="label">What type of Educational Establishment are you?</label>
<select name="education_menu" class="quad_hack">
<option value="na" selected="selected">N/A</option>
<option value="secondary">Secondary School</option>
<option value="academy">Academy</option>
<option value="sixth_form">Sixth Form</option>
<option value="fe">FE</option>
<option value="he">HE</option>
</select>
</p>
<p>
<label for="annual_amount" class="label">Annual Turnover:</label>
<select name="annual_menu">
<option value="less_50k"><£50,000</option>
<option value="50k_100k">£50,000-£99,999</option>
<option value="100k_500k">£100,000 -£500,000</option>
<option value="500k_more">>£500,000</option>
<option value="confidential">Confidential information</option>
</select>
</p>
<p>
<label for="core_business" class="label">What is your Core Business:</label>
<select name="core_type" multiple>
<option value="theatrical">Theatrical Productions</option>
<option value="film">Film Productions</option>
<option value="travelling">Travelling Theatre</option>
<option value="dance_music">Dance and Musical Production</option>
</select>
</p>
<p>
<label for="enquiry" class="label">Enquiry:</label>
<textarea name="enquiry" type="text" cols="50" rows="6" id="message" />Please Enter your enquiry here.</textarea>
</p>
<input name="submit" id="submit" type="submit" />
<input name="reset" type="reset" value="Reset">
</form>
JS:
//Checks the form for valid input
function validateForm()
{
//Form elements
//Name variables
var firstName=document.forms["contact_form"]["firstName"].value;
var lastName=document.forms["contact_form"]["lastName"].value;
//Address variables
var house=document.forms["contact_form"]["house"].value;
var street=document.forms["contact_form"]["street"].value;
var town=document.forms["contact_form"]["town"].value;
var postCode=document.forms["contact_form"]["postCode"].value;
//Number variables
var businessNumber=document.forms["contact_form"]["businessNumber"].value;
var mobileNumber=document.forms["contact_form"]["mobileNumber"].value;
var homeNumber=document.forms["contact_form"]["homeNumber"].value;
var blength=businessNumber.length;
var mlength=mobileNumber.length;
var hlength=homeNumber.length;
var numeric = /^[0-9]+$/;
//Email variables
var email=document.forms["contact_form"]["email"].value;
var atposition=email.indexOf("@");
var dotposition=email.lastIndexOf(".");
//Radio variables
//Start of validation
//First name
if (firstName==null || firstName=="")
{
alert("First name must be filled out");
return false;
}
//Last name
if (lastName==null || lastName=="")
{
alert("Last name must be filled out");
return false;
}
//House name
if (house==null || house=="")
{
alert("House name must be filled out");
return false;
}
//Street name
if (street==null || street=="")
{
alert("Street name must be filled out");
return false;
}
//Town
if (town==null || town=="")
{
alert("Town must be filled out");
return false;
}
//Post Code
if (postCode==null || postCode=="")
{
alert("Post code must be filled out");
return false;
}
//Phone number
if (homeNumber==null || homeNumber=="") //Check if field is empty
{
if (mobileNumber==null || mobileNumber=="")
{
if (businessNumber==null || businessNumber=="")
{
alert("You must enter a phone number");
return false;
}
else if (blength == "11"){ //Check if number has 11 digits
if (businessNumber.match(numeric)) { //Check if the field only contains numbers
return true;
}
else {
alert ("Only numbers are valid in the Business number field");
return false;
}
}
else if (mlength == "11"){
if (mobileNumber.match(numeric)) {
return true;
}
else {
alert ("Only numbers are valid in the Mobile field field");
return false;
}
}
}
else if (hlength == "11"){
if (homeNumber.match(numeric)) {
return true;
}
}
else {
alert("There must be 11 digits in the Home number field");
return false;
}
}
if (atposition<1 || dotposition<atposition+2 || dotposition+2>=email.length)
{
alert("Not a valid email address");
return false;
}
}