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