I have a page featuring 2 forms, both containing name and email address required fields. Both forms have unique ID and names, and the required fields are also uniquely named. I have 2 sets of ValidateRequiredFields scripts in the document head, and the form that the second script applies to is flagging that the required fields of the form that the first script applies too need completion. Here is the script:
<script type="text/javascript" language="JavaScript">
<!-- Copyright 2005 Bontrager Connection, LLC
//
// Two places need to be customized.
//
//
// Place 1:
// Between the quotation marks, specify the name of
// your form.
var FormName = "theForm2";
// Place 2:
// Between the quotation marks, specify the field names
// that are required. List the field name separated
// with a comma.
var RequiredFields = "FullName,EmailAddress";
//
// No other customization of this JavaScript is required.
//
/////////////////////////////////////////////////////////
function ValidateRequiredFields()
{
var FieldList = RequiredFields.split(",")
var BadList = new Array();
for(var i = 0; i < FieldList.length; i++) {
var s = eval('document.' + FormName + '.' + FieldList[i] + '.value');
s = StripSpacesFromEnds(s);
if(s.length < 1) { BadList.push(FieldList[i]); }
}
if(BadList.length < 1) { return true; }
var ess = new String();
if(BadList.length > 1) { ess = 's'; }
var message = new String('\n\nThe following field' + ess + ' are required:\n');
for(var i = 0; i < BadList.length; i++) { message += '\n' + BadList[i]; }
alert(message);
return false;
}
function StripSpacesFromEnds(s)
{
while((s.indexOf(' ',0) == 0) && (s.length> 1)) {
s = s.substring(1,s.length);
}
while((s.lastIndexOf(' ') == (s.length - 1)) && (s.length> 1)) {
s = s.substring(0,(s.length - 1));
}
if((s.indexOf(' ',0) == 0) && (s.length == 1)) { s = ''; }
return s;
}
// -->
</script>
<script type="text/javascript" language="JavaScript">
<!-- Copyright 2005 Bontrager Connection, LLC
//
// Two places need to be customized.
//
//
// Place 1:
// Between the quotation marks, specify the name of
// your form.
var FormName = "theForm";
// Place 2:
// Between the quotation marks, specify the field names
// that are required. List the field name separated
// with a comma.
var RequiredFields = "Name,Email";
//
// No other customization of this JavaScript is required.
//
/////////////////////////////////////////////////////////
function ValidateRequiredFields()
{
var FieldList = RequiredFields.split(",")
var BadList = new Array();
for(var i = 0; i < FieldList.length; i++) {
var s = eval('document.' + FormName + '.' + FieldList[i] + '.value');
s = StripSpacesFromEnds(s);
if(s.length < 1) { BadList.push(FieldList[i]); }
}
if(BadList.length < 1) { return true; }
var ess = new String();
if(BadList.length > 1) { ess = 's'; }
var message = new String('\n\nThe following field' + ess + ' are required:\n');
for(var i = 0; i < BadList.length; i++) { message += '\n' + BadList[i]; }
alert(message);
return false;
}
function StripSpacesFromEnds(s)
{
while((s.indexOf(' ',0) == 0) && (s.length> 1)) {
s = s.substring(1,s.length);
}
while((s.lastIndexOf(' ') == (s.length - 1)) && (s.length> 1)) {
s = s.substring(0,(s.length - 1));
}
if((s.indexOf(' ',0) == 0) && (s.length == 1)) { s = ''; }
return s;
}
// -->
</script>
and here are the first couple of lines of code for each form:
FORM 1
<form action="contactengine_required.php" method="post" name="theForm2" id="theForm2" onsubmit="return ValidateRequiredFields();" >
<input class="span7" type="text" name="FullName" id="FullName" placeholder="Full Name (required)" />
<input class="span7" type="text" name="EmailAddress" id="EmailAddress" placeholder="Email (required)" />
FORM 2
<form action="contactengine_required_footer.php" method="post" name="theForm" id="theForm" onsubmit="return ValidateRequiredFields();" >
<div class="clearfix">
<label for="Name"><span style="color: #FFF; font-size: 12px">*Name:</span></label>
<input class="span4" type="text" name="Name" id="Name"/>
</div>
<div class="clearfix">
<label for="Email"><span style="color: #FFF; font-size: 12px">*Email:</span></label>
The development page is here. Any help with sorting this out would be so appreciated!