The script is to loop through the "fieldnames" array to validate each
field specified. Each "Item" of the "fieldnames" array is an array:
Fieldname, FieldType, ErrorMessage, ValidateForBadCharacters,
ValidateAnEmailAddress
I started by just checking for "isEmpty", which is working fine. Then I
began testing for bad characters (checkChar). This took a little
tweeking, but now it's working fine. Then I began to test the email.
Ouch! Process stops here: check if "isEmpty", then check if it needs a
character check (blValChar) and if it does then do it (checkChar). Then
check if the field needs an address validation (blValMail)...
This is where it stops. It gets to "phone", sees that it is not empty,
then does the first boolean (blValChar) and since it does it performs
the character check (checkChar). Then it goes to check if it requires
address validation (blValMail)...and it breaks. The "blValMail" function
(for the first time) throws an error stating that 'Item.4' is null or
not an object.
I can't figure it out, it's been driving me nuts for hours now. Any help
is greatly appreciated...(Here's the basic form)
<form action="process2.cfm" method="post" onsubmit="return
valForm(this)" name="Form1">
<input type="hidden" name="subject" value="Literature Request">
<input type="hidden" name="poster" value="1">
<div style="text-align:center;">
<table border="0" width="450" cellpadding="2" border="#C0C0C0"
cellspacing="0">
<tr>
<td class="clsFieldName" align="right" width="25%">
Name:
</td>
<td width="75%">
<input type="Text" name="name" size="47" class="clsBoxes" />
</td>
</tr>
<tr>
<td class="clsFieldName" align="right">
Title:
</td>
<td>
<input type="Text" name="title" size="47" class="clsBoxes" />
</td>
</tr>
<tr>
<td class="clsFieldName" align="right">
Company:
</td>
<td>
<input type="Text" name="company" size="47" class="clsBoxes" />
</td>
</tr>
<tr>
<td class="clsFieldName" align="right">
Address:
</td>
<td>
<input type="Text" name="address" size="47" maxlength="110"
class="clsBoxes" /><br />
<input type="Text" name="address2" size="47" maxlength="110"
class="clsBoxes" />
</td>
</tr>
<tr>
<td class="clsFieldName" align="right">
City/State/Zip:
</td>
<td>
<input type="Text" name="city" size="22" maxlength="75"
class="clsBoxes" />,
<select name="state_province" class="clsBoxes">
<option value="">
<option value="AA">AA</option>
<option value="AE">AE</option>
<option value="AK">AK</option>
<option value="AL">AL</option>
<option value="AP">AP</option>
<option value="AR">AR</option>
<option value="AZ">AZ</option>
<option value="CA">CA</option>
<option value="CO">CO</option>
<option value="CT">CT</option>
<option value="DC">DC</option>
<option value="DE">DE</option>
<option value="FL">FL</option>
<option value="GA">GA</option>
<option value="HI">HI</option>
<option value="IA">IA</option>
<option value="ID">ID</option>
<option value="IL">IL</option>
<option value="IN">IN</option>
<option value="KS">KS</option>
<option value="KY">KY</option>
<option value="LA">LA</option>
<option value="MA">MA</option>
<option value="MD">MD</option>
<option value="ME">ME</option>
<option value="MI">MI</option>
<option value="MN">MN</option>
<option value="MO">MO</option>
<option value="MS">MS</option>
<option value="MT">MT</option>
<option value="NC">NC</option>
<option value="ND">ND</option>
<option value="NE">NE</option>
<option value="NH">NH</option>
<option value="NJ">NJ</option>
<option value="NM">NM</option>
<option value="NV">NV</option>
<option value="NY">NY</option>
<option value="OH">OH</option>
<option value="OK">OK</option>
<option value="OR">OR</option>
<option value="PA">PA</option>
<option value="RI">RI</option>
<option value="SC">SC</option>
<option value="SD">SD</option>
<option value="TN">TN</option>
<option value="TX">TX</option>
<option value="UT">UT</option>
<option value="VA">VA</option>
<option value="VT">VT</option>
<option value="WA">WA</option>
<option value="WI">WI</option>
<option value="WV">WV</option>
<option value="WY">WY</option>
</select>
<input type="Text" name="zip_or_country_code" size="10"
class="clsBoxes" />
</td>
</tr>
<tr>
<td class="clsFieldName" align="right">
Country:
</td>
<td>
<select name="country" class="clsBoxes">
<option value="" selected> - Select Your Country - </option>
<option value="intCountryID">
Afghanistan</option>
<option value="intCountryID">
Albania</option>
<option value="intCountryID">
Algeria</option>
<option value="intCountryID"> American
Samoa</option>
<option value="intCountryID">
Andorra</option>
<option value="intCountryID">
Angola</option>
<option value="intCountryID">
Anguilla</option>
<option value="intCountryID">
Antarctica</option>
<option value="intCountryID"> Antigua
and Barbuda</option>
<option value="intCountryID">
Argentina</option>
<option value="intCountryID">
Armenia</option>
<option value="intCountryID">
Aruba</option>
<option value="intCountryID"> Ashmore
and Cartier Islands</option>
<option value="intCountryID">
Australia</option>
<option value="intCountryID">
Austria</option>
<option value="intCountryID">
Azerbaijan</option>
<option value="intCountryID">
Bahrain</option>
<option value="intCountryID"> Baker
Island</option>
<option value="intCountryID">
Bangladesh</option>
<option value="intCountryID">
Barbados</option>
<option value="intCountryID"> Bassas da
India</option>
<option value="intCountryID">
Belarus</option>
<option value="intCountryID">
Belgium</option>
<option value="intCountryID">
Belize</option>
<option value="intCountryID">
Benin</option>
<option value="intCountryID">
Bermuda</option>
<option value="intCountryID">
Bhutan</option>
<option value="intCountryID">
Bolivia</option>
<option value="intCountryID"> Bosnia
and Herzegovina</option>
<option value="intCountryID">
Botswana</option>
<option value="intCountryID"> Bouvet
Island</option>
<option value="intCountryID">
Brazil</option>
<option value="intCountryID"> British
Indian Ocean Territory</option>
<option value="intCountryID"> British
Virgin Islands</option>
<option value="intCountryID">
Brunei</option>
<option value="intCountryID">
Bulgaria</option>
<option value="intCountryID"> Burkina
Faso</option>
<option value="intCountryID">
Burma</option>
<option value="intCountryID">
Burundi</option>
<option value="intCountryID">
Cambodia</option>
<option value="intCountryID">
Cameroon</option>
<option value="intCountryID">
Canada</option>
<option value="intCountryID"> Cape
Verde</option>
<option value="intCountryID"> Cayman
Islands</option>
<option value="intCountryID"> Central
African Republic</option>
<option value="intCountryID">
Chad</option>
<option value="intCountryID">
Chile</option>
<option value="intCountryID">
China</option>
<option value="intCountryID"> Christmas
Island</option>
<option value="intCountryID">
Clipperton Island</option>
<option value="intCountryID"> Cocos
(Keeling) Islands</option>
<option value="intCountryID">
Colombia</option>
<option value="intCountryID">
Comoros</option>
<option value="intCountryID"> Cook
Islands</option>
<option value="intCountryID"> Coral Sea
Islands</option>
<option value="intCountryID"> Costa
Rica</option>
<option value="intCountryID"> Cote
d'Ivoire</option>
<option value="intCountryID">
Croatia</option>
<option value="intCountryID">
Cyprus</option>
<option value="intCountryID"> Czech
Republic</option>
<option value="intCountryID">
Democratic Republic of the Congo</option>
<option value="intCountryID">
Denmark</option>
<option value="intCountryID">
Djibouti</option>
<option value="intCountryID">
Dominica</option>
<option value="intCountryID"> Dominican
Republic</option>
<option value="intCountryID">
Ecuador</option>
<option value="intCountryID">
Egypt</option>
<option value="intCountryID"> El
Salvador</option>
<option value="intCountryID">
Equatorial Guinea</option>
<option value="intCountryID">
Eritrea</option>
<option value="intCountryID">
Estonia</option>
<option value="intCountryID">
Ethiopia</option>
<option value="intCountryID"> Europa
Island</option>
<option value="intCountryID"> Falkland
Islands (Islas Malvinas)</option>
<option value="intCountryID"> Faroe
Islands</option>
<option value="intCountryID"> Federated
States of Micornesia</option>
<option value="intCountryID">
Fiji</option>
<option value="intCountryID">
Finland</option>
<option value="intCountryID">
France</option>
<option value="intCountryID"> French
Guiana</option>
<option value="intCountryID"> French
Polynesia</option>
<option value="intCountryID"> French
Southern and Antarctic Lands</option>
<option value="intCountryID">
Gabon</option>
<option value="intCountryID"> Gaza
Strip</option>
<option value="intCountryID">
Georgia</option>
<option value="intCountryID">
Germany</option>
<option value="intCountryID">
Ghana</option>
<option value="intCountryID">
Gibraltar</option>
<option value="intCountryID"> Glorioso
Islands</option>
<option value="intCountryID">
Greece</option>
<option value="intCountryID">
Greenland</option>
<option value="intCountryID">
Grenada</option>
<option value="intCountryID">
Guadeloupe</option>
<option value="intCountryID">
Guam</option>
<option value="intCountryID">
Guatemala</option>
<option value="intCountryID">
Guernsey</option>
<option value="intCountryID">
Guinea</option>
<option value="intCountryID">
Guinea-Bissau</option>
<option value="intCountryID">
Guyana</option>
<option value="intCountryID">
Haiti</option>
<option value="intCountryID"> Heard
Island and McDonald Islands</option>
<option value="intCountryID"> Holy See
(Vatican City)</option>
<option value="intCountryID">
Honduras</option>
<option value="intCountryID"> Hong
Kong</option>
<option value="intCountryID"> Howland
Island</option>
<option value="intCountryID">
Hungary</option>
<option value="intCountryID">
Iceland</option>
<option value="intCountryID">
India</option>
<option value="intCountryID"> Indian
Ocean</option>
<option value="intCountryID">
Indonesia</option>
<option value="intCountryID">
Ireland</option>
<option value="intCountryID"> Isle of
Man</option>
<option value="intCountryID">
Israel</option>
<option value="intCountryID">
Italy</option>
<option value="intCountryID">
Jamaica</option>
<option value="intCountryID"> Jan
Mayen</option>
<option value="intCountryID">
Japan</option>
<option value="intCountryID"> Jarvis
Island</option>
<option value="intCountryID">
Jersey</option>
<option value="intCountryID"> Johnston
Atoll</option>
<option value="intCountryID">
Jordan</option>
<option value="intCountryID"> Juan de
Nova Island</option>
<option value="intCountryID">
Kazakhstan</option>
<option value="intCountryID">
Kenya</option>
<option value="intCountryID"> Kingman
Reef</option>
<option value="intCountryID">
Kiribati</option>
<option value="intCountryID">
Kuwait</option>
<option value="intCountryID">
Kyrgyzstan</option>
<option value="intCountryID">
Laos</option>
<option value="intCountryID">
Latvia</option>
<option value="intCountryID">
Lebanon</option>
<option value="intCountryID">
Lesotho</option>
<option value="intCountryID">
Liberia</option>
<option value="intCountryID">
Liechtenstein</option>
<option value="intCountryID">
Lithuania</option>
<option value="intCountryID">
Luxembourg</option>
<option value="intCountryID">
Macau</option>
<option value="intCountryID">
Madagascar</option>
<option value="intCountryID">
Malawi</option>
<option value="intCountryID">
Malaysia</option>
<option value="intCountryID">
Maldives</option>
<option value="intCountryID">
Mali</option>
<option value="intCountryID">
Malta</option>
<option value="intCountryID"> Marshall
Islands</option>
<option value="intCountryID">
Martinique</option>
<option value="intCountryID">
Mauritania</option>
<option value="intCountryID">
Mauritius</option>
<option value="intCountryID">
Mayotte</option>
<option value="intCountryID">
Mexico</option>
<option value="intCountryID"> Midway
Islands</option>
<option value="intCountryID">
Moldova</option>
<option value="intCountryID">
Monaco</option>
<option value="intCountryID">
Mongolia</option>
<option value="intCountryID">
Montserrat</option>
<option value="intCountryID">
Morocco</option>
<option value="intCountryID">
Mozambique</option>
<option value="intCountryID">
Namibia</option>
<option value="intCountryID">
Nauru</option>
<option value="intCountryID"> Navassa
Island</option>
<option value="intCountryID">
Nepal</option>
<option value="intCountryID">
Netherlands</option>
<option value="intCountryID">
Netherlands Antilles</option>
<option value="intCountryID"> New
Caledonia</option>
<option value="intCountryID"> New
Zealand</option>
<option value="intCountryID">
Nicaragua</option>
<option value="intCountryID">
Niger</option>
<option value="intCountryID">
Nigeria</option>
<option value="intCountryID">
Niue</option>
<option value="intCountryID"> Norfolk
Island</option>
<option value="intCountryID"> Northern
Mariana Islands</option>
<option value="intCountryID">
Norway</option>
<option value="intCountryID">
Oman</option>
<option value="intCountryID">
Pakistan</option>
<option value="intCountryID">
Palau</option>
<option value="intCountryID"> Palmyra
Atoll</option>
<option value="intCountryID">
Panama</option>
<option value="intCountryID"> Papua New
Guinea</option>
<option value="intCountryID"> Paracel
Islands</option>
<option value="intCountryID">
Paraguay</option>
<option value="intCountryID">
Peru</option>
<option value="intCountryID">
Philippines</option>
<option value="intCountryID"> Pitcairn
Islands</option>
<option value="intCountryID">
Poland</option>
<option value="intCountryID">
Portugal</option>
<option value="intCountryID"> Puerto
Rico</option>
<option value="intCountryID">
Qatar</option>
<option value="intCountryID"> Republic
of the Congo</option>
<option value="intCountryID">
Reunion</option>
<option value="intCountryID">
Romania</option>
<option value="intCountryID">
Russia</option>
<option value="intCountryID">
Rwanda</option>
<option value="intCountryID"> Saint
Helena</option>
<option value="intCountryID"> Saint
Kitts and Nevis</option>
<option value="intCountryID"> Saint
Lucia</option>
<option value="intCountryID"> Saint
Pierre and Miquelon</option>
<option value="intCountryID"> Saint
Vincent and the Grenadines</option>
<option value="intCountryID">
Samoa</option>
<option value="intCountryID"> San
Marino</option>
<option value="intCountryID"> Sao Tome
and Principe</option>
<option value="intCountryID"> Saudi
Arabia</option>
<option value="intCountryID">
Senegal</option>
<option value="intCountryID"> Serbia
and Montenegro</option>
<option value="intCountryID">
Seychelles</option>
<option value="intCountryID"> Sierra
Leone</option>
<option value="intCountryID">
Singapore</option>
<option value="intCountryID">
Slovakia</option>
<option value="intCountryID">
Slovenia</option>
<option value="intCountryID"> Solomon
Islands</option>
<option value="intCountryID">
Somalia</option>
<option value="intCountryID"> South
Africa</option>
<option value="intCountryID"> South
Georgia and the South Sandwich Islands</option>
<option value="intCountryID"> South
Korea</option>
<option value="intCountryID">
Spain</option>
<option value="intCountryID"> Spratly
Islands</option>
<option value="intCountryID"> Sri
Lanka</option>
<option value="intCountryID">
Suriname</option>
<option value="intCountryID">
Svalbard</option>
<option value="intCountryID">
Swaziland</option>
<option value="intCountryID">
Sweden</option>
<option value="intCountryID">
Switzerland</option>
<option value="intCountryID">
Syria</option>
<option value="intCountryID">
Taiwan</option>
<option value="intCountryID">
Tajikistan</option>
<option value="intCountryID">
Tanzania</option>
<option value="intCountryID">
Thailand</option>
<option value="intCountryID"> The
Bahamas</option>
<option value="intCountryID"> The
Former Yugoslav Republic of Macedonia</option>
<option value="intCountryID"> The
Gambia</option>
<option value="intCountryID">
Togo</option>
<option value="intCountryID">
Tokelau</option>
<option value="intCountryID">
Tonga</option>
<option value="intCountryID"> Trinidad
and Tobago</option>
<option value="intCountryID"> Tromelin
Island</option>
<option value="intCountryID">
Tunisia</option>
<option value="intCountryID">
Turkey</option>
<option value="intCountryID">
Turkmenistan</option>
<option value="intCountryID"> Turks and
Caicos Islands</option>
<option value="intCountryID">
Tuvalu</option>
<option value="intCountryID">
Uganda</option>
<option value="intCountryID">
Ukraine</option>
<option value="intCountryID"> United
Arab Emirates</option>
<option value="intCountryID"> United
Kingdom</option>
<option value="intCountryID"> United
States</option>
<option value="intCountryID">
Uruguay</option>
<option value="intCountryID">
Uzbekistan</option>
<option value="intCountryID">
Vanuatu</option>
<option value="intCountryID">
Venezuela</option>
<option value="intCountryID">
Vietnam</option>
<option value="intCountryID"> Virgin
Islands</option>
<option value="intCountryID"> Wake
Island</option>
<option value="intCountryID"> Wallis
and Futuna</option>
<option value="intCountryID"> West
Bank</option>
<option value="intCountryID"> Western
Sahara</option>
<option value="intCountryID">
World</option>
<option value="intCountryID">
Yemen</option>
<option value="intCountryID">
Zaire</option>
<option value="intCountryID">
Zambia</option>
<option value="intCountryID">
Zimbabwe</option>
<option
value="intCountryID">Bermuda</option>
<option value="intCountryID">British
Virgin Islands</option>
<option
value="intCountryID">Jamaica</option>
<option
value="intCountryID">Mexico</option>
<option value="intCountryID">Puerto
Rico</option>
<option
value="intCountryID">Scotland</option>
<option value="intCountryID">The
Bahamas</option>
<option
value="intCountryID">Vietnam</option>
<option value="intCountryID">Virgin
Islands</option>
</select>
</td>
</tr>
<tr>
<td class="clsFieldName" align="right">
Phone:
</td>
<td>
<input type="Text" name="phone" size="12" maxlength="25"
class="clsBoxes" /> <span
class="clsFieldName">Fax:</span> <input type="Text" name="fax"
size="12" maxlength="25" class="clsBoxes" />
</td>
</tr>
<tr>
<td class="clsFieldName" align="right">
E-Mail:
</td>
<td>
<input type="Text" name="email" size="47" maxlength="110"
class="clsBoxes" />
</td>
</tr>
</table>
</div>
<div align="center">
<table border="0" cellpadding="2" cellspacing="0" width="450">
<tr>
<td class="clsFieldName">
Enter Applications, Custom Requirements, and additional
questions or comments below:
</td>
</tr>
<tr>
<td>
<textarea name="comment" rows="3" cols="50"
class="clsBoxes"></textarea>
</td>
</tr>
</table>
</div>
<div align="center">
<input NAME="SUBMIT" TYPE="submit" VALUE="Submit" class="clsButtons">
</div>
</form>
**************** separate js file **************
var fieldnames = new Array();
var Item = new Array();
fieldnames[0] = (Item =['name','text','Please supply your Name',0,0]);
fieldnames[1] = (Item = ['title','text','Please supply your Title',0,0]);
fieldnames[2] = (Item = ['company','text','Please supply your Company
name',0,0]);
fieldnames[3] = (Item = ['address','text','Please supply your
Address',0,0]);
fieldnames[4] = (Item = ['city','text','Please supply your City',0,0]);
fieldnames[5] = (Item = ['country','select','Please supply your
Country',0,0]);
fieldnames[6] = (Item = ['state_province','select','Please supply your
State or province',0,0]);
fieldnames[7] = (Item = ['zip_or_country_code','text','Please supply
your Zip or Country Code',0,0]);
fieldnames[8] = (Item = ['phone','text','Please supply your Phone
number',1,0]);
fieldnames[9] = (Item = ['fax','text','Please supply your Fax
number',1,0]);
fieldnames[10] = (Item = ['email','text','You must enter a valid Email
address',1,1]);
function isEmpty(form, field)
{
fn = getField(field);
tp = getType(field);
result = false;
if(tp == 'text')
{
strValue = "form." + fn + ".value";
}
if(tp == 'select')
{
strValue = "form." + fn + ".options[form." + fn +
".selectedIndex].value";
}
if ((eval(strValue) == null) || (eval(strValue) == ''))
result = true;
return result;
}
function getField(field)
{
Item = field;
return Item[0];
}
function getType(field)
{
Item = field;
return Item[1];
}
function getError(field)
{
Item = field;
return Item[2];
}
function blValChar(field)
{
Item = field;
return Item[3];
}
function blValMail(field)
{
Item = field;
return Item[4];
}
function showError(field, form)
{
alert(getError(field));
a = "form." + getField(field);
eval(a).focus();
if(getType(field) == 'text')
eval(a).select();
}
function charCheck(field, form)
{
result = true;
var arrBadChars = new
Array("~","`","!","@","#","$","%","%","^","&","*","(",")","_","=",":",";","'","<",">",".","?","/");
strField = "form." + getField(field);
a = eval(strField).value;
for (i = 0; i < arrBadChars.length; i++)
{
if (a.indexOf(arrBadChars[i]) != '-1')
{
alert('Please do not enter any illegal characters');
eval(strField).focus();
eval(strField).select();
result = false;
return result;
}
}
return result;
}
function chkMail(field, form)
{
re= /^\w+([\.-]?\w)*@\w+([\.]?\w+)*(\.\w{2,4})+$/; // RegEx for
testing email
result = true;
strField = "form." + getField(field);
strValue = eval(strField).value;
if(!re.test(strValue))
result = false;
return result;
}
function valForm(form)
{
for( i = 0; i < fieldnames.length; i++ )
{
alert("Field " + i + " " + getField(fieldnames[i]));
if(isEmpty(form,fieldnames[i]))
{
showError(fieldnames[i],form);
return false;
}
if(blValChar(fieldnames[i]))
{
if(!charCheck(fieldnames[i], form))
return false;
}
if(blValMail(fieldnames[i]))
{
if(!chkMail(fieldnames[i]))
return false;
}
}
return true;
}
Joshua Miller wrote:
<<<Additional text truncated.>>>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription:
http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Your ad could be here. Monies from ads go to support these lists and provide more
resources for the community. http://www.fusionauthority.com/ads.cfm
Unsubscribe:
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4