function validateEmail(eemail) { var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/; return emailPattern.test(eemail); } function validate(formData, jqForm, options) { document.getElementById('nname_error').innerHTML = ''; document.getElementById('pphone_error').innerHTML = ''; document.getElementById('eemail_error').innerHTML = ''; document.getElementById('ffile_error').innerHTML = ''; var form = jqForm[0]; var strAlert = ''; if (form.nname.value.length <= 0) { document.getElementById('nname_error').innerHTML = 'Please enter your name.'; strAlert += 'Please enter your name.\n\r'; } if (form.pphone.value.length <= 0) { document.getElementById('pphone_error').innerHTML = 'Please enter your phone number.'; strAlert += 'Please enter your phone number.\n\r'; } else if ( !form.pphone.value.match(/^[0-9]{6,14}$/i) ) { document.getElementById('pphone_error').innerHTML = 'Please enter a valid phone number.'; strAlert += 'Please enter a valid phone number.\n\r'; } if (form.eemail.value.length <= 0) { document.getElementById('eemail_error').innerHTML = 'Please enter your email address.'; strAlert += 'Please enter your email address.\n\r'; } else if ( !validateEmail(form.eemail.value) ) { document.getElementById('eemail_error').innerHTML = 'Please enter a valid email address.'; strAlert += 'Please enter a valid email address.\n\r'; } if ( form.ffile.value.length <= 0 ) { document.getElementById('ffile_error').innerHTML = 'Please upload a file.'; strAlert += 'Please upload a file.\n\r'; } else if ( !form.ffile.value.match(/^.+\.(zip|rar)$/i) ) { document.getElementById('ffile_error').innerHTML = 'Please upload a zip or rar archive.'; strAlert += 'Please upload a zip or rar archive.\n\r'; } if ( strAlert.length > 0 ) { // alert(strAlert); return false; } } // wait for the DOM to be loaded $(document).ready(function() { var options = { target: '#output', // target element(s) to be updated with server response beforeSubmit: validate, // pre-submit callback //success: showResponse, // post-submit callback // other available options: //url: url // override for form's 'action' attribute type: 'post', // 'get' or 'post', override for form's 'method' attribute //dataType: 'script', // 'xml', 'script', or 'json' (expected server response type) clearForm: true // clear all form fields after successful submit //resetForm: true // reset the form after successful submit // $.ajax options can be used here too, for example: //timeout: 3000 }; // bind to the form's submit event $('#myForm').submit(function() { // inside event callbacks 'this' is the DOM element so we first // wrap it in a jQuery object and then invoke ajaxSubmit $(this).ajaxSubmit(options); // !!! Important !!! // always return false to prevent standard browser submit and page navigation return false; }); });