/* Name: View - Contact Written by: Okler Themes - (http://www.okler.net) Theme Version: 1.1.0 */ (function($) { 'use strict'; /* Custom Rules */ // No White Space $.validator.addMethod("noSpace", function(value, element) { if( $(element).attr('required') ) { return value.search(/[a-z0-9]/i) == 0; } return true; }, 'Please fill this empty field.'); /* Assign Custom Rules on Fields */ $.validator.addClassRules({ 'form-control': { noSpace: true } }); /* Contact Form: Basic */ $('.contact-form').each(function(){ $(this).validate({ submitHandler: function(form) { var $form = $(form), $messageSuccess = $form.find('.contact-form-success'), $messageError = $form.find('.contact-form-error'), $submitButton = $(this.submitButton), $errorMessage = $form.find('.mail-error-message'), submitButtonText = $submitButton.val(); $submitButton.val( $submitButton.data('loading-text') ? $submitButton.data('loading-text') : 'Loading...' ).attr('disabled', true); // Fields Data var formData = $form.serializeArray(), data = {}; $(formData).each(function(index, obj){ data[obj.name] = obj.value; }); // Google Recaptcha if( data["g-recaptcha-response"] != undefined ) { data["g-recaptcha-response"] = $form.find('#g-recaptcha-response').val(); } // Ajax Submit $.ajax({ type: 'POST', url: $form.attr('action'), data: data }).always(function(data, textStatus, jqXHR) { $errorMessage.empty().hide(); if (data.response == 'success') { // Uncomment the code below to redirect for a thank you page // self.location = 'thank-you.html'; $messageSuccess.removeClass('d-none'); $messageError.addClass('d-none'); // Reset Form $form.find('.form-control') .val('') .blur() .parent() .removeClass('has-success') .removeClass('has-danger') .find('label.error') .remove(); if (($messageSuccess.offset().top - 80) < $(window).scrollTop()) { $('html, body').animate({ scrollTop: $messageSuccess.offset().top - 80 }, 300); } $form.find('.form-control').removeClass('error'); $submitButton.val( submitButtonText ).attr('disabled', false); return; } else if (data.response == 'error' && typeof data.errorMessage !== 'undefined') { $errorMessage.html(data.errorMessage).show(); } else { $errorMessage.html(data.responseText).show(); } $messageError.removeClass('d-none'); $messageSuccess.addClass('d-none'); if (($messageError.offset().top - 80) < $(window).scrollTop()) { $('html, body').animate({ scrollTop: $messageError.offset().top - 80 }, 300); } $form.find('.has-success') .removeClass('has-success'); $submitButton.val( submitButtonText ).attr('disabled', false); }); } }); }); }).apply(this, [jQuery]);