I have a form on Supplier_reg.asp that asks the user for different information and asks them to select one or more checkboxes. I found this validation script on creativeprogrammers.com (which doesn't exist right now) and am using it for all validation except for my checkboxes (i tried inserting the custom validation into it and it wasn't working) I've run various validation tests on the page and the one I'm having trouble with is making sure at least one checkbox has been selected) - I think the problem may be that I'm trying to run two different scripts at one time, but I'm not sure.
Here is my code for supplier_reg.asp:
<html>
<head>
<title></title>
<script LANGUAGE="JavaScript">
function isChecked(frm) {
if ((!(frm.ck_Automotive.checked)) || (!(frm.ck_BldgMat.checked)) || (!(frm.ck_Chemicals.checked)) || (!(frm.ck_Computing.checked)) || (!(frm.ck_ConstrucContr.checked)) || (!(frm.ck_FloorCvrng.checked)) || (!(frm.ck_FormsPP.checked)) || (!(frm.ck_FurnitureOfc.checked)) || (!(frm.FurnitureOT.checked)) || (!(frm.ck_HVAC.checked)) || (!(frm.ck_Insulation.checked)) || (!(frm.ck_Insurance.checked)) || (!(frm.ck_Janitorial.checked)) || (!(frm.ck_LawnEquip.checked)) || (!(frm.ck_MailRoom.checked)) || (!(frm.ck_Medical.checked)) || (!(frm.ck_OfficeEquip.checked)) || (!(frm.ck_OfcSupplies.checked)) || (!(frm.ck_Other.checked)) || (!(frm.ck_Playground.checked)) || (!(frm.ck_RadioTelephone.checked)) || (!(frm.ck_RefuseWaste.checked)) || (!(frm.ck_Roofing.checked)) || (!(frm.ck_SnowRemEquip.checked)) || (!(frm.ck_OfficeEquip.checked)))
{
alert("Please select at least one of the major categories!"
;
return false;
}
else
{
return true;
}
}
</script>
<script language="JavaScript" src="gen_validatorv2.js" type="text/javascript"></script>
</head>
<body>
<center>
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH="90%" >
<tr>
<td>
<font face="Arial,Helvetica" size=-1>
By completing and submitting this form, you will be added to our Supplier List
</td>
</tr>
</table>
</center>
<table BORDER CELLSPACING=0 CELLPADDING=2 WIDTH="100%" BGCOLOR="#C7C8C9" >
<tr>
<td>
<form name="supplyreg" method="post" action="commodities.asp">
<center>
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH="85%" >
<tr ALIGN=LEFT VALIGN=TOP>
<td><b><font face="Arial,Helvetica"><font color="#000000"><font size=-1>Company Name </font></font></font></b></td>
<td><input type="text" name="D_Company" size="35" maxlength="35"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica"><font color="#000000"><font size=-1>Address </font></font></font></b></td>
<td><input type="text" name="D_Address" size="45" maxlength="45"></td>
</tr>
<tr ALIGN=LEFT VALIGN=TOP>
<td><b><font face="Arial,Helvetica"><font color="#000000"><font size=-1>City, State, Zip </font></font></font></b></td>
<td><input type="text" name="D_City" size="35" maxlength="35"><input type="text" name="D_State" size="2" maxlength="2"><input type="text" name="D_Zip" size="5" maxlength="5"></td>
</tr>
<tr ALIGN=LEFT VALIGN=TOP>
<td><b><font face="Arial,Helvetica"><font color="#000000"><font size=-1>Phone </font></font></font></b></td>
<td><input type="text" name="D_Phone" size="14" maxlength="14"></td>
</tr>
<tr ALIGN=LEFT VALIGN=TOP>
<td><b><font face="Arial,Helvetica"><font color="#000000"><font size=-1>Fax </font></font></font></b></td>
<td><input type="text" name="D_Fax" size="14" maxlength="14"></td>
</tr>
<tr ALIGN=LEFT VALIGN=TOP>
<td><b><font face="Arial,Helvetica"><font color="#000000"><font size=-1>Website Address </font></font></font></b></td>
<td><input type="text" name="D_Website" size="50" maxlength="50"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica"><font color="#000000"><font size=-1>Contact Person </font></font></font></b></td>
<td><input type="text" name="D_Contact" size=35 maxlength=35></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica"><font color="#000000"><font size=-1>Contact Phone</font></font></font></b></td>
<td><input type="text" name="D_CPhone" size=14 maxlength=14></td>
</tr>
<tr ALIGN=LEFT VALIGN=TOP>
<td></td>
<td></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica"><font size=-1><font color="#000000">Contact Email</font><font color="#CC0000">(Please check for accuracy prior to submission)</font></font></font></b></td>
<td><input type="text" name="D_Email" size=40 maxlength=40></td>
</tr>
<tr>
<td> </td>
<td></td>
</tr>
<tr>
<td></td>
</tr>
</table>
</center>
<center>
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH="85%" >
<tr>
<td><b><font face="Arial,Helvetica"><font color="#009900">Please notify me by e-mail </font></font></b><input type="checkbox" name="notify" value="-1"></td>
<td></td>
</tr>
<tr>
<td></td>
<td><input type="hidden" name="hidDate"></td>
</tr>
</table>
</center>
<center>
<table BORDER=0 COLS=1 WIDTH="98%" >
<tr>
<td>
<center>
<table BORDER=0 CELLSPACING=5 CELLPADDING=5 WIDTH="90%" >
<tr>
<td><b><font face="Arial,Helvetica"><font color="#000000"><font size=-1>Products and/or Services: </font></font></font></b><br><b><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>(Please select from the General Categories below
</font></font></font></b></td>
<td></td>
<td></td>
</tr>
</table>
</center>
<center>
<table BORDER CELLSPACING=5 CELLPADDING=5 WIDTH="90%" >
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Automotive</font></b></td>
<td><input type="checkbox" name="ck_Automotive" value="1000"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Building Materials</font></b></td>
<td><input type="checkbox" name="ck_BldgMat" value="1200"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Chemicals</font></b></td>
<td><input type="checkbox" name="ck_Chemicals" value="1400"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Computing/Networking</font></b></td>
<td><input type="checkbox" name="ck_Computing" value="1600"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Construction/Contractors</font></b></td>
<td><input type="checkbox" name="ck_ConstrucContr" value="1800"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Floor Covering</font></b></td>
<td><input type="checkbox" name="ck_FloorCvrng" value="2000"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Forms, Pre-Printed</font></b></td>
<td><input type="checkbox" name="ck_FormsPP" value="2200"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Furniture, Office</font></b></td>
<td><input type="checkbox" name="ck_FurnitureOfc" value="2400"></td>
</tr>
<tr VALIGN=TOP>
<td><b><font face="Arial,Helvetica" size=-1>Furniture, Other than Office</font></b></td>
<td><input type="checkbox" name="ck_FurnitureOT" value="2600"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>HVAC: Heating-Ventilation-Air Conditioning</font></b></td>
<td><input type="checkbox" name="ck_HVAC" value="2800"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Insulation</font></b></td>
<td><input type="checkbox" name="ck_Insulation" value="3000"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Insurance</font></b></td>
<td><input type="checkbox" name="ck_Insurance" value="3200"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Janitorial</font></b></td>
<td><input type="checkbox" name="ck_Janitorial" value="3400"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Lawn Equipment & Accessories</font></b></td>
<td><input type="checkbox" name="ck_LawnEquip" value="3600"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Mail Room Equipment</font></b></td>
<td><input type="checkbox" name="ck_MailRoom" value="3800"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Medical</font></b></td>
<td><input type="checkbox" name="ck_Medical" value="4000"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Office Equipment</font></b></td>
<td><input type="checkbox" name="ck_OfficeEquip" value="4200"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Office Supplies</font></b></td>
<td><input type="checkbox" name="ck_OfcSupplies" value="4400"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Other (Pest Control)</font></b></td>
<td><input type="checkbox" name="ck_Other" value="4600"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Playground Equipment</font></b></td>
<td><input type="checkbox" name="ck_Playground" value="4800"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Radio/Telephone Equipment & Supplies</font></b></td>
<td><input type="checkbox" name="ck_RadioTelephone" value="5000"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Refuse & Waste Removal</font></b></td>
<td><input type="checkbox" name="ck_RefuseWaste" value="5200"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Roofing</font></b></td>
<td><input type="checkbox" name="ck_Roofing" value="5400"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Snow Removal & Equipment</font></b></td>
<td><input type="checkbox" name="ck_SnowRemEquip" value="5600"></td>
</tr>
</table>
</center>
</td>
</tr>
</table>
</center>
<center>
<table BORDER=0 CELLSPACING=5 CELLPADDING=5 WIDTH="60%" >
<tr>
<td>
<center>
<input type="submit" name="Submit" value="Register" onClick='isChecked(this.form)'>
</center>
</td>
<td><input type="reset" name="Reset" value="Reset"></td>
</tr>
</table>
</center>
</form>
<script language="Javascript">
var frmvalidator = new Validator("supplyreg"
;
frmvalidator.addValidation("D_Company", "req", "Please enter your Company Name"
;
frmvalidator.addValidation("D_Company", "maxlen=35", "Maximum length for this field is 35 characters"
;
frmvalidator.addValidation("D_Address", "req", "Please enter your Company Mailing Address"
;
frmvalidator.addValidation("D_Address", "maxlen=45", "Maximum length for this field is 45 characters"
;
frmvalidator.addValidation("D_City", "req", "Please enter the City for the Company Mailing Address"
;
frmvalidator.addValidation("D_City", "maxlen=35", "Maximum length for this field is 35 characters"
;
frmvalidator.addValidation("D_State", "req", "The state is a required field"
;
frmvalidator.addValidation("D_State", "maxlen=2", "Maximum length for this field is 2 characters"
;
frmvalidator.addValidation("D_Zip", "req", "Please enter a 5-digit zip code"
;
frmvalidator.addValidation("D_Zip", "maxlen=5", "Maximum length for this field is 5 characters"
;
frmvalidator.addValidation("D_Phone", "req", "Please enter an Area Code and Phone Number for your Company"
;
frmvalidator.addValidation("D_Phone", "maxlen=14", "Maximum length for this field is 14 characters"
;
frmvalidator.addValidation("D_Fax", "maxlen=14", "Maximum length for this field is 14 characters"
;
frmvalidator.addValidation("D_Website", "maxlen=50", "Maximum length for this field is 50 characters"
;
frmvalidator.addValidation("D_Contact", "req", "Please enter a Contact Name"
;
frmvalidator.addValidation("D_Contact", "maxlen=35", "Maximum length for this field is 35 characters"
;
frmvalidator.addValidation("D_CPhone", "req", "Please enter an Area Code and Phone Number for your Contact Person"
;
frmvalidator.addValidation("D_CPhone", "maxlen=14", "Maximum length for this field is 14 characters"
;
frmvalidator.addValidation("D_Phone", "req", "Please enter an Email address"
;
frmvalidator.addValidation("D_Phone", "maxlen=40", "Maximum length for this field is 40 characters"
;
frmvalidator.addValidation("D_Email", "email"
;
</script>
</td>
</tr>
</table>
</center>
</body>
</html>
Here is my code for the form validation except for checkboxes:
/*
* The Validator
* The class that handles all validation related issues
*
* pass the name of the form while constructing.
* methods:
* addValidation(input_item_name,validation_descriptor,error_string)
* call this method for each input item. Single input item can have
* many validations
*
* setAddnlValidationFunction(functionname)
* call this function to set a custom validate function, which will
* be called after other validations are over.
* The function should return 'true' or 'false'
*/
function Validator(frmname)
{
this.formobj=document.forms[frmname];
if(!this.formobj)
{
alert("BUG: could not 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;
}
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: Could not 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;
}
//---------------------------------EMail Check ------------------------------------
/* checks the validity of an email address entered
* returns true or false
*
*/
function validateEmailv2(email)
{
// a very simple email validation checking.
// you can add more complex email checking if it helps
var splitted = email.match("^(.+)@(.+)$"
;
if(splitted == null) return false;
if (email == ""
{ // can be empty
return true;
}
if(splitted[1] != null )
{
var regexp_user=/^\"?[\w-_\.]*\"?$/;
if(splitted[1].match(regexp_user) == null) return false;
}
if(splitted[2] != null)
{
var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
if(splitted[2].match(regexp_domain) == null)
{
var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
if(splitted[2].match(regexp_ip) == null) return false;
}// if
return true;
}
return false;
}
/* function V2validateData
* Checks each field in a form
*/
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 "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
case "minlength":
case "minlen":
{
if(eval(objValue.value.length) < eval(cmdvalue))
{
if(!strError || strError.length ==0)
{
strError = objValue.name + " : " + cmdvalue + " characters minimum ";
}//if
alert(strError + "\n[Current length = " + objValue.value.length + " ]"
;
return false;
}//if
break;
}//case minlen
case "alnum":
case "alphanumeric":
{
var charpos = objValue.value.search("[^A-Za-z0-9]"
;
if(objValue.value.length > 0 && charpos >= 0)
{
if(!strError || strError.length ==0)
{
strError = objValue.name+": Only alpha-numeric characters allowed ";
}//if
alert(strError + "\n [Error character position " + eval(charpos+1)+"]"
;
return false;
}//if
break;
}//case alphanumeric
case "num":
case "numeric":
{
var charpos = objValue.value.search("[^0-9]"
;
if(objValue.value.length > 0 && charpos >= 0)
{
if(!strError || strError.length ==0)
{
strError = objValue.name+": Only digits allowed ";
}//if
alert(strError + "\n [Error character position " + eval(charpos+1)+"]"
;
return false;
}//if
break;
}//numeric
case "alphabetic":
case "alpha":
{
var charpos = objValue.value.search("[^A-Za-z]"
;
if(objValue.value.length > 0 && charpos >= 0)
{
if(!strError || strError.length ==0)
{
strError = objValue.name+": Only alphabetic characters allowed ";
}//if
alert(strError + "\n [Error character position " + eval(charpos+1)+"]"
;
return false;
}//if
break;
}//alpha
case "alnumhyphen":
{
var charpos = objValue.value.search("[^A-Za-z0-9\-_]"
;
if(objValue.value.length > 0 && charpos >= 0)
{
if(!strError || strError.length ==0)
{
strError = objValue.name+": characters allowed are A-Z,a-z,0-9,- and _";
}//if
alert(strError + "\n [Error character position " + eval(charpos+1)+"]"
;
return false;
}//if
break;
}
case "email":
{
if(!validateEmailv2(objValue.value))
{
if(!strError || strError.length ==0)
{
strError = "Please enter a valid Email address ";
}//if
alert(strError);
return false;
}//if
break;
}//case email
case "lt":
case "lessthan":
{
if(isNaN(objValue.value))
{
alert(objValue.name+": Should be a number "
;
return false;
}//if
if(eval(objValue.value) >= eval(cmdvalue))
{
if(!strError || strError.length ==0)
{
strError = objValue.name + " : value should be less than "+ cmdvalue;
}//if
alert(strError);
return false;
}//if
break;
}//case lessthan
case "gt":
case "greaterthan":
{
if(isNaN(objValue.value))
{
alert(objValue.name+": Should be a number "
;
return false;
}//if
if(eval(objValue.value) <= eval(cmdvalue))
{
if(!strError || strError.length ==0)
{
strError = objValue.name + " : value should be greater than "+ cmdvalue;
}//if
alert(strError);
return false;
}//if
break;
}//case greaterthan
case "regexp":
{
if(!objValue.value.match(cmdvalue))
{
if(!strError || strError.length ==0)
{
strError = objValue.name+": Invalid characters found ";
}//if
alert(strError);
return false;
}//if
break;
}//case regexp
case "dontselect":
{
if(objValue.selectedIndex == null)
{
alert("BUG: dontselect command for non-select Item"
;
return false;
}
if(objValue.selectedIndex == eval(cmdvalue))
{
if(!strError || strError.length ==0)
{
//strError = objValue.name+": Please Select one option ";
alert(strError);
}//if
alert(strError);
return false;
}
break;
}//case dontselect
}//switch
FMdate = new Date();
Curdate = (FMdate.getMonth()+1) +"/"+ FMdate.getDate() + "/" + FMdate.getYear()
document.supplyreg.hidDate.value = Curdate;
return true;
}
Can anyone tell me why this isn't working. The alert box pops up as long as one of the other parts of the form aren't filled out correctly, but if all parts are filled out correctly, it continues on to commodities.asp????? I've been looking at this all day and am pulling out my hair. Any suggestions????? Sorry about the length on this one...... Thanks to all!!!!!!!!!![[nosmiley] [nosmiley] [nosmiley]](/data/assets/smilies/nosmiley.gif)
Here is my code for supplier_reg.asp:
<html>
<head>
<title></title>
<script LANGUAGE="JavaScript">
function isChecked(frm) {
if ((!(frm.ck_Automotive.checked)) || (!(frm.ck_BldgMat.checked)) || (!(frm.ck_Chemicals.checked)) || (!(frm.ck_Computing.checked)) || (!(frm.ck_ConstrucContr.checked)) || (!(frm.ck_FloorCvrng.checked)) || (!(frm.ck_FormsPP.checked)) || (!(frm.ck_FurnitureOfc.checked)) || (!(frm.FurnitureOT.checked)) || (!(frm.ck_HVAC.checked)) || (!(frm.ck_Insulation.checked)) || (!(frm.ck_Insurance.checked)) || (!(frm.ck_Janitorial.checked)) || (!(frm.ck_LawnEquip.checked)) || (!(frm.ck_MailRoom.checked)) || (!(frm.ck_Medical.checked)) || (!(frm.ck_OfficeEquip.checked)) || (!(frm.ck_OfcSupplies.checked)) || (!(frm.ck_Other.checked)) || (!(frm.ck_Playground.checked)) || (!(frm.ck_RadioTelephone.checked)) || (!(frm.ck_RefuseWaste.checked)) || (!(frm.ck_Roofing.checked)) || (!(frm.ck_SnowRemEquip.checked)) || (!(frm.ck_OfficeEquip.checked)))
{
alert("Please select at least one of the major categories!"
return false;
}
else
{
return true;
}
}
</script>
<script language="JavaScript" src="gen_validatorv2.js" type="text/javascript"></script>
</head>
<body>
<center>
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH="90%" >
<tr>
<td>
<font face="Arial,Helvetica" size=-1>
By completing and submitting this form, you will be added to our Supplier List
</td>
</tr>
</table>
</center>
<table BORDER CELLSPACING=0 CELLPADDING=2 WIDTH="100%" BGCOLOR="#C7C8C9" >
<tr>
<td>
<form name="supplyreg" method="post" action="commodities.asp">
<center>
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH="85%" >
<tr ALIGN=LEFT VALIGN=TOP>
<td><b><font face="Arial,Helvetica"><font color="#000000"><font size=-1>Company Name </font></font></font></b></td>
<td><input type="text" name="D_Company" size="35" maxlength="35"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica"><font color="#000000"><font size=-1>Address </font></font></font></b></td>
<td><input type="text" name="D_Address" size="45" maxlength="45"></td>
</tr>
<tr ALIGN=LEFT VALIGN=TOP>
<td><b><font face="Arial,Helvetica"><font color="#000000"><font size=-1>City, State, Zip </font></font></font></b></td>
<td><input type="text" name="D_City" size="35" maxlength="35"><input type="text" name="D_State" size="2" maxlength="2"><input type="text" name="D_Zip" size="5" maxlength="5"></td>
</tr>
<tr ALIGN=LEFT VALIGN=TOP>
<td><b><font face="Arial,Helvetica"><font color="#000000"><font size=-1>Phone </font></font></font></b></td>
<td><input type="text" name="D_Phone" size="14" maxlength="14"></td>
</tr>
<tr ALIGN=LEFT VALIGN=TOP>
<td><b><font face="Arial,Helvetica"><font color="#000000"><font size=-1>Fax </font></font></font></b></td>
<td><input type="text" name="D_Fax" size="14" maxlength="14"></td>
</tr>
<tr ALIGN=LEFT VALIGN=TOP>
<td><b><font face="Arial,Helvetica"><font color="#000000"><font size=-1>Website Address </font></font></font></b></td>
<td><input type="text" name="D_Website" size="50" maxlength="50"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica"><font color="#000000"><font size=-1>Contact Person </font></font></font></b></td>
<td><input type="text" name="D_Contact" size=35 maxlength=35></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica"><font color="#000000"><font size=-1>Contact Phone</font></font></font></b></td>
<td><input type="text" name="D_CPhone" size=14 maxlength=14></td>
</tr>
<tr ALIGN=LEFT VALIGN=TOP>
<td></td>
<td></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica"><font size=-1><font color="#000000">Contact Email</font><font color="#CC0000">(Please check for accuracy prior to submission)</font></font></font></b></td>
<td><input type="text" name="D_Email" size=40 maxlength=40></td>
</tr>
<tr>
<td> </td>
<td></td>
</tr>
<tr>
<td></td>
</tr>
</table>
</center>
<center>
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH="85%" >
<tr>
<td><b><font face="Arial,Helvetica"><font color="#009900">Please notify me by e-mail </font></font></b><input type="checkbox" name="notify" value="-1"></td>
<td></td>
</tr>
<tr>
<td></td>
<td><input type="hidden" name="hidDate"></td>
</tr>
</table>
</center>
<center>
<table BORDER=0 COLS=1 WIDTH="98%" >
<tr>
<td>
<center>
<table BORDER=0 CELLSPACING=5 CELLPADDING=5 WIDTH="90%" >
<tr>
<td><b><font face="Arial,Helvetica"><font color="#000000"><font size=-1>Products and/or Services: </font></font></font></b><br><b><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>(Please select from the General Categories below
<td></td>
<td></td>
</tr>
</table>
</center>
<center>
<table BORDER CELLSPACING=5 CELLPADDING=5 WIDTH="90%" >
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Automotive</font></b></td>
<td><input type="checkbox" name="ck_Automotive" value="1000"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Building Materials</font></b></td>
<td><input type="checkbox" name="ck_BldgMat" value="1200"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Chemicals</font></b></td>
<td><input type="checkbox" name="ck_Chemicals" value="1400"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Computing/Networking</font></b></td>
<td><input type="checkbox" name="ck_Computing" value="1600"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Construction/Contractors</font></b></td>
<td><input type="checkbox" name="ck_ConstrucContr" value="1800"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Floor Covering</font></b></td>
<td><input type="checkbox" name="ck_FloorCvrng" value="2000"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Forms, Pre-Printed</font></b></td>
<td><input type="checkbox" name="ck_FormsPP" value="2200"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Furniture, Office</font></b></td>
<td><input type="checkbox" name="ck_FurnitureOfc" value="2400"></td>
</tr>
<tr VALIGN=TOP>
<td><b><font face="Arial,Helvetica" size=-1>Furniture, Other than Office</font></b></td>
<td><input type="checkbox" name="ck_FurnitureOT" value="2600"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>HVAC: Heating-Ventilation-Air Conditioning</font></b></td>
<td><input type="checkbox" name="ck_HVAC" value="2800"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Insulation</font></b></td>
<td><input type="checkbox" name="ck_Insulation" value="3000"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Insurance</font></b></td>
<td><input type="checkbox" name="ck_Insurance" value="3200"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Janitorial</font></b></td>
<td><input type="checkbox" name="ck_Janitorial" value="3400"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Lawn Equipment & Accessories</font></b></td>
<td><input type="checkbox" name="ck_LawnEquip" value="3600"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Mail Room Equipment</font></b></td>
<td><input type="checkbox" name="ck_MailRoom" value="3800"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Medical</font></b></td>
<td><input type="checkbox" name="ck_Medical" value="4000"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Office Equipment</font></b></td>
<td><input type="checkbox" name="ck_OfficeEquip" value="4200"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Office Supplies</font></b></td>
<td><input type="checkbox" name="ck_OfcSupplies" value="4400"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Other (Pest Control)</font></b></td>
<td><input type="checkbox" name="ck_Other" value="4600"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Playground Equipment</font></b></td>
<td><input type="checkbox" name="ck_Playground" value="4800"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Radio/Telephone Equipment & Supplies</font></b></td>
<td><input type="checkbox" name="ck_RadioTelephone" value="5000"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Refuse & Waste Removal</font></b></td>
<td><input type="checkbox" name="ck_RefuseWaste" value="5200"></td>
</tr>
<tr>
<td><b><font face="Arial,Helvetica" size=-1>Roofing</font></b></td>
<td><input type="checkbox" name="ck_Roofing" value="5400"></td>
<td></td>
<td><b><font face="Arial,Helvetica" size=-1>Snow Removal & Equipment</font></b></td>
<td><input type="checkbox" name="ck_SnowRemEquip" value="5600"></td>
</tr>
</table>
</center>
</td>
</tr>
</table>
</center>
<center>
<table BORDER=0 CELLSPACING=5 CELLPADDING=5 WIDTH="60%" >
<tr>
<td>
<center>
<input type="submit" name="Submit" value="Register" onClick='isChecked(this.form)'>
</center>
</td>
<td><input type="reset" name="Reset" value="Reset"></td>
</tr>
</table>
</center>
</form>
<script language="Javascript">
var frmvalidator = new Validator("supplyreg"
frmvalidator.addValidation("D_Company", "req", "Please enter your Company Name"
frmvalidator.addValidation("D_Company", "maxlen=35", "Maximum length for this field is 35 characters"
frmvalidator.addValidation("D_Address", "req", "Please enter your Company Mailing Address"
frmvalidator.addValidation("D_Address", "maxlen=45", "Maximum length for this field is 45 characters"
frmvalidator.addValidation("D_City", "req", "Please enter the City for the Company Mailing Address"
frmvalidator.addValidation("D_City", "maxlen=35", "Maximum length for this field is 35 characters"
frmvalidator.addValidation("D_State", "req", "The state is a required field"
frmvalidator.addValidation("D_State", "maxlen=2", "Maximum length for this field is 2 characters"
frmvalidator.addValidation("D_Zip", "req", "Please enter a 5-digit zip code"
frmvalidator.addValidation("D_Zip", "maxlen=5", "Maximum length for this field is 5 characters"
frmvalidator.addValidation("D_Phone", "req", "Please enter an Area Code and Phone Number for your Company"
frmvalidator.addValidation("D_Phone", "maxlen=14", "Maximum length for this field is 14 characters"
frmvalidator.addValidation("D_Fax", "maxlen=14", "Maximum length for this field is 14 characters"
frmvalidator.addValidation("D_Website", "maxlen=50", "Maximum length for this field is 50 characters"
frmvalidator.addValidation("D_Contact", "req", "Please enter a Contact Name"
frmvalidator.addValidation("D_Contact", "maxlen=35", "Maximum length for this field is 35 characters"
frmvalidator.addValidation("D_CPhone", "req", "Please enter an Area Code and Phone Number for your Contact Person"
frmvalidator.addValidation("D_CPhone", "maxlen=14", "Maximum length for this field is 14 characters"
frmvalidator.addValidation("D_Phone", "req", "Please enter an Email address"
frmvalidator.addValidation("D_Phone", "maxlen=40", "Maximum length for this field is 40 characters"
frmvalidator.addValidation("D_Email", "email"
</script>
</td>
</tr>
</table>
</center>
</body>
</html>
Here is my code for the form validation except for checkboxes:
/*
* The Validator
* The class that handles all validation related issues
*
* pass the name of the form while constructing.
* methods:
* addValidation(input_item_name,validation_descriptor,error_string)
* call this method for each input item. Single input item can have
* many validations
*
* setAddnlValidationFunction(functionname)
* call this function to set a custom validate function, which will
* be called after other validations are over.
* The function should return 'true' or 'false'
*/
function Validator(frmname)
{
this.formobj=document.forms[frmname];
if(!this.formobj)
{
alert("BUG: could not 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;
}
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: Could not 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;
}
//---------------------------------EMail Check ------------------------------------
/* checks the validity of an email address entered
* returns true or false
*
*/
function validateEmailv2(email)
{
// a very simple email validation checking.
// you can add more complex email checking if it helps
var splitted = email.match("^(.+)@(.+)$"
if(splitted == null) return false;
if (email == ""
return true;
}
if(splitted[1] != null )
{
var regexp_user=/^\"?[\w-_\.]*\"?$/;
if(splitted[1].match(regexp_user) == null) return false;
}
if(splitted[2] != null)
{
var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
if(splitted[2].match(regexp_domain) == null)
{
var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
if(splitted[2].match(regexp_ip) == null) return false;
}// if
return true;
}
return false;
}
/* function V2validateData
* Checks each field in a form
*/
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 "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
case "minlength":
case "minlen":
{
if(eval(objValue.value.length) < eval(cmdvalue))
{
if(!strError || strError.length ==0)
{
strError = objValue.name + " : " + cmdvalue + " characters minimum ";
}//if
alert(strError + "\n[Current length = " + objValue.value.length + " ]"
return false;
}//if
break;
}//case minlen
case "alnum":
case "alphanumeric":
{
var charpos = objValue.value.search("[^A-Za-z0-9]"
if(objValue.value.length > 0 && charpos >= 0)
{
if(!strError || strError.length ==0)
{
strError = objValue.name+": Only alpha-numeric characters allowed ";
}//if
alert(strError + "\n [Error character position " + eval(charpos+1)+"]"
return false;
}//if
break;
}//case alphanumeric
case "num":
case "numeric":
{
var charpos = objValue.value.search("[^0-9]"
if(objValue.value.length > 0 && charpos >= 0)
{
if(!strError || strError.length ==0)
{
strError = objValue.name+": Only digits allowed ";
}//if
alert(strError + "\n [Error character position " + eval(charpos+1)+"]"
return false;
}//if
break;
}//numeric
case "alphabetic":
case "alpha":
{
var charpos = objValue.value.search("[^A-Za-z]"
if(objValue.value.length > 0 && charpos >= 0)
{
if(!strError || strError.length ==0)
{
strError = objValue.name+": Only alphabetic characters allowed ";
}//if
alert(strError + "\n [Error character position " + eval(charpos+1)+"]"
return false;
}//if
break;
}//alpha
case "alnumhyphen":
{
var charpos = objValue.value.search("[^A-Za-z0-9\-_]"
if(objValue.value.length > 0 && charpos >= 0)
{
if(!strError || strError.length ==0)
{
strError = objValue.name+": characters allowed are A-Z,a-z,0-9,- and _";
}//if
alert(strError + "\n [Error character position " + eval(charpos+1)+"]"
return false;
}//if
break;
}
case "email":
{
if(!validateEmailv2(objValue.value))
{
if(!strError || strError.length ==0)
{
strError = "Please enter a valid Email address ";
}//if
alert(strError);
return false;
}//if
break;
}//case email
case "lt":
case "lessthan":
{
if(isNaN(objValue.value))
{
alert(objValue.name+": Should be a number "
return false;
}//if
if(eval(objValue.value) >= eval(cmdvalue))
{
if(!strError || strError.length ==0)
{
strError = objValue.name + " : value should be less than "+ cmdvalue;
}//if
alert(strError);
return false;
}//if
break;
}//case lessthan
case "gt":
case "greaterthan":
{
if(isNaN(objValue.value))
{
alert(objValue.name+": Should be a number "
return false;
}//if
if(eval(objValue.value) <= eval(cmdvalue))
{
if(!strError || strError.length ==0)
{
strError = objValue.name + " : value should be greater than "+ cmdvalue;
}//if
alert(strError);
return false;
}//if
break;
}//case greaterthan
case "regexp":
{
if(!objValue.value.match(cmdvalue))
{
if(!strError || strError.length ==0)
{
strError = objValue.name+": Invalid characters found ";
}//if
alert(strError);
return false;
}//if
break;
}//case regexp
case "dontselect":
{
if(objValue.selectedIndex == null)
{
alert("BUG: dontselect command for non-select Item"
return false;
}
if(objValue.selectedIndex == eval(cmdvalue))
{
if(!strError || strError.length ==0)
{
//strError = objValue.name+": Please Select one option ";
alert(strError);
}//if
alert(strError);
return false;
}
break;
}//case dontselect
}//switch
FMdate = new Date();
Curdate = (FMdate.getMonth()+1) +"/"+ FMdate.getDate() + "/" + FMdate.getYear()
document.supplyreg.hidDate.value = Curdate;
return true;
}
Can anyone tell me why this isn't working. The alert box pops up as long as one of the other parts of the form aren't filled out correctly, but if all parts are filled out correctly, it continues on to commodities.asp????? I've been looking at this all day and am pulling out my hair. Any suggestions????? Sorry about the length on this one...... Thanks to all!!!!!!!!!
![[nosmiley] [nosmiley] [nosmiley]](/data/assets/smilies/nosmiley.gif)