midohioit
Aug 12th 2007, 7:43 pm
Can someone please help me? I can get the textboxes to validate with a popup if they are not filled in but not the checkboxes.
html form:
<form action="http://www.midohioit.com/quote/quote.php" enctype="multipart/form-data" method="post" name="quoteform" id="quoteform">
<input type="hidden" name="form" value="true">
<p style="color:#FFB050; font-weight:bold;">Development Quote <font color="#FFFFFF"><b>*
Desinates required fields </b></font></p>
<p style="color:#FFB050; font-weight:bold;"> </p>
<div style="width:476px;height:1px;border-top:1px dashed #506473;padding-bottom:8px;"></div>
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="body">
<tr>
<td valign="top">
<table width="114%" border="0" cellpadding="3" cellspacing="0" class="body">
<tr>
<td width="7" height="25"><span style="color:">*</span></td>
<td height="35" width="152">Contact Name:</td>
<td width="339" height="35" align="right">
<input name="name" class="quoteform" id="name" style="width:200px;" onFocus="this.style.background='#FFFBCF'" onBlur="this.style.background='#FFFFFF'" value="" size="20" maxlength="50">
</td>
</tr>
<tr>
<td width="7" height="25"><span style="color:">*</span></td>
<td height="35" width="152">Company Name:</td>
<td width="339" height="35" align="right">
<input name="company2" id="company" onFocus="this.style.background='#FFFBCF'" onBlur="this.style.background='#FFFFFF'" size="20" maxlength="50" style="width:200px;" value="">
</td>
</tr>
<tr>
<td width="7" height="109">*</td>
<td height="109" width="152">Work needed</td>
<td width="339" height="109">
<span onMouseover="ddrivetip('Website design - Select this option if you want to have a new website designed.','#506473', 300)" onMouseout="hideddrivetip()">
<input id="designtype1" name="designtype1" type="checkbox" onFocus="show('designtype');return true;" value="Website design">
<label for="designtypeecommerce">Website design </label></span>
<br>
<span onMouseover="ddrivetip('Hosting - Select this option if you need Hosting or would like to have us host your current site.','#506473', 300)" onMouseout="hideddrivetip()">
<input id="designtype2" name="designtype2" type="checkbox" onFocus="hide('EcommerceQuestions');return true;" value="Hosting">
<label for="designtypeinformational">Hosting</label></span><br>
<span onMouseover="ddrivetip('Website Makeover - Select this option if your existing website does not look professional and you want to change the looks.','#506473', 300)" onMouseout="hideddrivetip()">
<input id="designtype3" name="designtype3" type="checkbox" onFocus="hide('EcommerceQuestions');return true;" value="Website Makeover" >
<label for="designtypeother">Website Makeover</label>
</span>
</p>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" border="0" cellpadding="3" cellspacing="0" class="body">
<tr>
<td width="10"> </td>
<td height="35">How did you hear about us?</td>
<td width="200" align="right">
<select name="referrer" id="referrer" style="width: 200px;" onFocus="this.style.background='#FFFBCF'" onBlur="this.style.background='#FFFFFF'">
<option value="" selected>Please Select</option>
<option value="Google Search">Google Search</option>
<option value="Yahoo Search">Yahoo Search</option>
<option value="MSN Search">MSN Search</option>
<option value="Other Search Engine">Other Search Engine</option>
<option value="Friend/Associate">Friend/Associate</option>
<option value="Link from another website">Link from another
website</option>
<option value="Phone Book/Print Ad">Phone Book/Print Ad</option>
</select>
</form>
<script language="JavaScript" type="text/javascript">
var frmvalidator = new Validator("quoteform");
frmvalidator.addValidation("name","req","Please enter your Name");
frmvalidator.addValidation("name","maxlen=50","Maximum length for Name is 50 characters.");
frmvalidator.addValidation("name","minlen=3","Minimum length for Name is 3 characters.");
frmvalidator.addValidation("name","alphanum");
frmvalidator.addValidation("designtype1","checkbox");
frmvalidator.addValidation("designtype2","checkbox");
frmvalidator.addValidation("designtype3","checkbox");
</script>
here is the gen_validatorv2.js file:
function Validator(frmname)
{
this.formobj=document.forms[frmname];
if(!this.formobj)
{
alert("BUG: couldnot get Form object "+frmname);
return;
}
if(this.formobj.onsubmit)
{
this.formobj.old_onsubmit = this.formobj.onsubmit;
this.formobj.onsubmit=null;
}
else
{
this.formobj.old_onsubmit = null;
}
this.formobj.onsubmit=form_submit_handler;
this.addValidation = add_validation;
this.setAddnlValidationFunction=set_addnl_vfunction;
this.clearAllValidations = clear_all_validations;
this.validateInput = validate_Input;
this.CheckBoxValidation = CheckBoxValidation;
}
function set_addnl_vfunction(functionname)
{
this.formobj.addnlvalidation = functionname;
}
function clear_all_validations()
{
for(var itr=0;itr < this.formobj.elements.length;itr++)
{
this.formobj.elements[itr].validationset = null;
}
}
function form_submit_handler()
{
for(var itr=0;itr < this.elements.length;itr++)
{
if(this.elements[itr].validationset &&
!this.elements[itr].validationset.validate())
{
return false;
}
}
if(this.addnlvalidation)
{
str =" var ret = "+this.addnlvalidation+"()";
eval(str);
if(!ret) return ret;
}
return true;
}
function add_validation(itemname,descriptor,errstr)
{
if(!this.formobj)
{
alert("BUG: the form object is not set properly");
return;
}//if
var itemobj = this.formobj[itemname];
if(!itemobj)
{
alert("BUG: Couldnot get the input object named: "+itemname);
return;
}
if(!itemobj.validationset)
{
itemobj.validationset = new ValidationSet(itemobj);
}
itemobj.validationset.add(descriptor,errstr);
}
function ValidationDesc(inputitem,desc,error)
{
this.desc=desc;
this.error=error;
this.itemobj = inputitem;
this.validate=vdesc_validate;
}
function vdesc_validate()
{
if(!V2validateData(this.desc,this.itemobj,this.error))
{
this.itemobj.focus();
return false;
}
return true;
}
function ValidationSet(inputitem)
{
this.vSet=new Array();
this.add= add_validationdesc;
this.validate= vset_validate;
this.itemobj = inputitem;
}
function add_validationdesc(desc,error)
{
this.vSet[this.vSet.length]=
new ValidationDesc(this.itemobj,desc,error);
}
function vset_validate()
{
for(var itr=0;itr<this.vSet.length;itr++)
{
if(!this.vSet[itr].validate())
{
return false;
}
}
return true;
}
function V2validateData(strValidateStr,objValue,strError)
{
var epos = strValidateStr.search("=");
var command = "";
var cmdvalue = "";
if(epos >= 0)
{
command = strValidateStr.substring(0,epos);
cmdvalue = strValidateStr.substr(epos+1);
}
else
{
command = strValidateStr;
}
switch(command)
{
case "checkbox":
{
if(!objValue.checked)
{
if(!strError || strError.length ==0)
{
strError =objValue.name+" needs to be checked";
}
alert(strError);
return false;
}
break;
}// case "checkbox"
case "req":
case "required":
{
if(eval(objValue.value.length) == 0)
{
if(!strError || strError.length ==0)
{
strError = objValue.name + " : Required Field";
}//if
alert(strError);
return false;
}//if
break;
}//case required
case "maxlength":
case "maxlen":
{
if(eval(objValue.value.length) > eval(cmdvalue))
{
if(!strError || strError.length ==0)
{
strError = objValue.name + " : "+cmdvalue+" characters maximum ";
}//if
alert(strError + "\n[Current length = " + objValue.value.length + " ]");
return false;
}//if
break;
}//case maxlen
html form:
<form action="http://www.midohioit.com/quote/quote.php" enctype="multipart/form-data" method="post" name="quoteform" id="quoteform">
<input type="hidden" name="form" value="true">
<p style="color:#FFB050; font-weight:bold;">Development Quote <font color="#FFFFFF"><b>*
Desinates required fields </b></font></p>
<p style="color:#FFB050; font-weight:bold;"> </p>
<div style="width:476px;height:1px;border-top:1px dashed #506473;padding-bottom:8px;"></div>
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="body">
<tr>
<td valign="top">
<table width="114%" border="0" cellpadding="3" cellspacing="0" class="body">
<tr>
<td width="7" height="25"><span style="color:">*</span></td>
<td height="35" width="152">Contact Name:</td>
<td width="339" height="35" align="right">
<input name="name" class="quoteform" id="name" style="width:200px;" onFocus="this.style.background='#FFFBCF'" onBlur="this.style.background='#FFFFFF'" value="" size="20" maxlength="50">
</td>
</tr>
<tr>
<td width="7" height="25"><span style="color:">*</span></td>
<td height="35" width="152">Company Name:</td>
<td width="339" height="35" align="right">
<input name="company2" id="company" onFocus="this.style.background='#FFFBCF'" onBlur="this.style.background='#FFFFFF'" size="20" maxlength="50" style="width:200px;" value="">
</td>
</tr>
<tr>
<td width="7" height="109">*</td>
<td height="109" width="152">Work needed</td>
<td width="339" height="109">
<span onMouseover="ddrivetip('Website design - Select this option if you want to have a new website designed.','#506473', 300)" onMouseout="hideddrivetip()">
<input id="designtype1" name="designtype1" type="checkbox" onFocus="show('designtype');return true;" value="Website design">
<label for="designtypeecommerce">Website design </label></span>
<br>
<span onMouseover="ddrivetip('Hosting - Select this option if you need Hosting or would like to have us host your current site.','#506473', 300)" onMouseout="hideddrivetip()">
<input id="designtype2" name="designtype2" type="checkbox" onFocus="hide('EcommerceQuestions');return true;" value="Hosting">
<label for="designtypeinformational">Hosting</label></span><br>
<span onMouseover="ddrivetip('Website Makeover - Select this option if your existing website does not look professional and you want to change the looks.','#506473', 300)" onMouseout="hideddrivetip()">
<input id="designtype3" name="designtype3" type="checkbox" onFocus="hide('EcommerceQuestions');return true;" value="Website Makeover" >
<label for="designtypeother">Website Makeover</label>
</span>
</p>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="100%" border="0" cellpadding="3" cellspacing="0" class="body">
<tr>
<td width="10"> </td>
<td height="35">How did you hear about us?</td>
<td width="200" align="right">
<select name="referrer" id="referrer" style="width: 200px;" onFocus="this.style.background='#FFFBCF'" onBlur="this.style.background='#FFFFFF'">
<option value="" selected>Please Select</option>
<option value="Google Search">Google Search</option>
<option value="Yahoo Search">Yahoo Search</option>
<option value="MSN Search">MSN Search</option>
<option value="Other Search Engine">Other Search Engine</option>
<option value="Friend/Associate">Friend/Associate</option>
<option value="Link from another website">Link from another
website</option>
<option value="Phone Book/Print Ad">Phone Book/Print Ad</option>
</select>
</form>
<script language="JavaScript" type="text/javascript">
var frmvalidator = new Validator("quoteform");
frmvalidator.addValidation("name","req","Please enter your Name");
frmvalidator.addValidation("name","maxlen=50","Maximum length for Name is 50 characters.");
frmvalidator.addValidation("name","minlen=3","Minimum length for Name is 3 characters.");
frmvalidator.addValidation("name","alphanum");
frmvalidator.addValidation("designtype1","checkbox");
frmvalidator.addValidation("designtype2","checkbox");
frmvalidator.addValidation("designtype3","checkbox");
</script>
here is the gen_validatorv2.js file:
function Validator(frmname)
{
this.formobj=document.forms[frmname];
if(!this.formobj)
{
alert("BUG: couldnot get Form object "+frmname);
return;
}
if(this.formobj.onsubmit)
{
this.formobj.old_onsubmit = this.formobj.onsubmit;
this.formobj.onsubmit=null;
}
else
{
this.formobj.old_onsubmit = null;
}
this.formobj.onsubmit=form_submit_handler;
this.addValidation = add_validation;
this.setAddnlValidationFunction=set_addnl_vfunction;
this.clearAllValidations = clear_all_validations;
this.validateInput = validate_Input;
this.CheckBoxValidation = CheckBoxValidation;
}
function set_addnl_vfunction(functionname)
{
this.formobj.addnlvalidation = functionname;
}
function clear_all_validations()
{
for(var itr=0;itr < this.formobj.elements.length;itr++)
{
this.formobj.elements[itr].validationset = null;
}
}
function form_submit_handler()
{
for(var itr=0;itr < this.elements.length;itr++)
{
if(this.elements[itr].validationset &&
!this.elements[itr].validationset.validate())
{
return false;
}
}
if(this.addnlvalidation)
{
str =" var ret = "+this.addnlvalidation+"()";
eval(str);
if(!ret) return ret;
}
return true;
}
function add_validation(itemname,descriptor,errstr)
{
if(!this.formobj)
{
alert("BUG: the form object is not set properly");
return;
}//if
var itemobj = this.formobj[itemname];
if(!itemobj)
{
alert("BUG: Couldnot get the input object named: "+itemname);
return;
}
if(!itemobj.validationset)
{
itemobj.validationset = new ValidationSet(itemobj);
}
itemobj.validationset.add(descriptor,errstr);
}
function ValidationDesc(inputitem,desc,error)
{
this.desc=desc;
this.error=error;
this.itemobj = inputitem;
this.validate=vdesc_validate;
}
function vdesc_validate()
{
if(!V2validateData(this.desc,this.itemobj,this.error))
{
this.itemobj.focus();
return false;
}
return true;
}
function ValidationSet(inputitem)
{
this.vSet=new Array();
this.add= add_validationdesc;
this.validate= vset_validate;
this.itemobj = inputitem;
}
function add_validationdesc(desc,error)
{
this.vSet[this.vSet.length]=
new ValidationDesc(this.itemobj,desc,error);
}
function vset_validate()
{
for(var itr=0;itr<this.vSet.length;itr++)
{
if(!this.vSet[itr].validate())
{
return false;
}
}
return true;
}
function V2validateData(strValidateStr,objValue,strError)
{
var epos = strValidateStr.search("=");
var command = "";
var cmdvalue = "";
if(epos >= 0)
{
command = strValidateStr.substring(0,epos);
cmdvalue = strValidateStr.substr(epos+1);
}
else
{
command = strValidateStr;
}
switch(command)
{
case "checkbox":
{
if(!objValue.checked)
{
if(!strError || strError.length ==0)
{
strError =objValue.name+" needs to be checked";
}
alert(strError);
return false;
}
break;
}// case "checkbox"
case "req":
case "required":
{
if(eval(objValue.value.length) == 0)
{
if(!strError || strError.length ==0)
{
strError = objValue.name + " : Required Field";
}//if
alert(strError);
return false;
}//if
break;
}//case required
case "maxlength":
case "maxlen":
{
if(eval(objValue.value.length) > eval(cmdvalue))
{
if(!strError || strError.length ==0)
{
strError = objValue.name + " : "+cmdvalue+" characters maximum ";
}//if
alert(strError + "\n[Current length = " + objValue.value.length + " ]");
return false;
}//if
break;
}//case maxlen