var regularExpressionData = Array(Array('name','^[\\x20-\\x7e]*$'),Array('first_name','^[\\x20-\\x7e]*$'),Array('last_name','^[\\x20-\\x7e]*$'),Array('telephone','(^[0-9\\+\\ \\.\\-]{10,}$)'),Array('when','^[\\x20-\\x7e]*$'),Array('other_time','^[\\x20-\\x7e]*$'),Array('message','^[\\x20-\\x7e]*$'),Array('email','^[\\w\\.\\-]{1,64}@[^.]{1}[\\w.]{0,255}\\.[\\w]{2,}$'),Array('address_0','^[\\x20-\\x7e]*$'),Array('address_1','^[\\x20-\\x7e]*$'),Array('address_2','^[\\x20-\\x7e]*$'),Array('town','^[\\x20-\\x7e]*$'),Array('postcode','^[\\x20-\\x7e]*$'),Array('planning_permission_required','^[\\x20-\\x7e]*$'),Array('brochure','^[\\x20-\\x7e]*$'),Array('access_route','^[\\x20-\\x7e]*$'),Array('how_found_us','^[\\x20-\\x7e]*$'),Array('idea','^[\\x20-\\x7e]*$'),Array('form_used','^[\\x20-\\x7e]*$'),Array('total_cost','^[0-9,.]*$'),Array('quotation_data','^[\\x20-\\x7e]*$'),Array('building_name','^[\\x20-\\x7e]*$'),Array('building_range','^[\\x20-\\x7e]*$'),Array('option','^[\\x20-\\x7e]*$'));function FormHandler(){ /* hook into the form blur events */ $('form input[type=text],form textarea').each( function(index,element){ var currentElementName = $(element).attr('name'); // find the corresponding regex and store this against this class so future lookups are not necessary $(regularExpressionData).each(function(index,value){ if(value[0] == currentElementName){ $(element).data('regex',value[1]); //return false; } }); $(element).blur(function(){ var regex = $(this).data('regex'); if($(this).val().match(regex) != null){ $(this).removeClass('invalid-data'); }else{ $(this).addClass('invalid-data'); } }); } ); $('form').submit(function(){ // check that each field validates var validData = true; $('form input[type=text],form textarea').each( function(index,element){ var regex = $(element).data('regex'); if(typeof regex != 'undefined'){ if($(element).val().match(regex) != null){ $(element).removeClass('invalid-data'); }else{ $(element).addClass('invalid-data'); validData = false; } } }); return validData; }); } $(document).ready(function(){ formHandler = new FormHandler(); });