var vacancy_form_submitting = false; function check_errors() { var valid = true; if(!$("#FORM_FIELD_FIO").val()) { valid = false; $("#FORM_FIELD_FIO_wrapper").addClass("error").attr("data-error", "Необходимо указать Ваши ФИО"); } if(!$("#FORM_FIELD_CITY").val()) { valid = false; $("#FORM_FIELD_CITY_wrapper").addClass("error").attr("data-error", "Необходимо указать город Вашего проживания"); } if(!$("#FORM_FIELD_PHONE").val()) { valid = false; $("#FORM_FIELD_PHONE_wrapper").addClass("error").attr("data-error", "Необходимо указать номер Вашего телефона"); } if(!$("#FORM_FIELD_EMAIL").val()) { valid = false; $("#FORM_FIELD_EMAIL_wrapper").addClass("error").attr("data-error", "Необходимо указать Ваш адрес E-mail"); } else { if(!is_email($("#FORM_FIELD_EMAIL").val())) { valid = false; $("#FORM_FIELD_EMAIL_wrapper").addClass("error").attr("data-error", "Пожалуйста, укажите правильный адрес E-mail"); } } if(!$("#FORM_FIELD_VACANCY").val()) { valid = false; $("#FORM_FIELD_VACANCY_wrapper").addClass("error").attr("data-error", "Пожалуйста, укажите какая вакансия Вас интересует"); } return valid; } function form_vacancy_submit() { var accept = $("#policy").is(':checked'); if(!vacancy_form_submitting && accept) { if(check_errors()) { vacancy_form_submitting = true; $("#send_button_text").css("display", "none"); $("#send_button_spinner").css("display", "block"); $("#form_vacancy").find("input").removeClass("error"); var formData = new FormData($("#form_vacancy")[0]); formData.append("form", "FORM_VACANCY"); formData.append("FORM_FIELD_PAGE_NAME", document.title); formData.append("FORM_FIELD_PAGE_URL", window.location.href); grecaptcha.ready(function() { grecaptcha.execute($("meta[name=recaptcha_site_key]").attr("content"), { action: 'submit' }).then(function(token) { formData.append("recaptcha_token", token); $.ajax( { url: "/api/forms/", type: 'POST', success: function(response) { if(response.status == "complete") { $("#form_vacancy_process").css("display","none"); $("#form_vacancy_success").css("display","flex"); $("#send_button_text").css("display", "block"); $("#send_button_spinner").css("display", "none"); vacancy_form_submitting = false; } else if(response.status == "error") { for(var i in response.errors) { $("#form_vacancy").find("*[name="+response.errors[i]+"]").addClass("error"); } $("#form_vacancy_process").css("display","none"); $("#form_vacancy_fail").css("display","flex").parent().css("backgroundColor", "#2C2D2E"); $("#send_button_text").css("display", "block"); $("#send_button_spinner").css("display", "none"); vacancy_form_submitting = false; } }, data: formData, dataType: "json", cache: false, contentType: false, processData: false }); }); }); } } } $(function() { $("#form_vacancy").find("input").on("keypress", function() { $(this).parent().removeClass("error").attr("data-error", null); }); $("#form_vacancy_send_button").on("click", function() { form_vacancy_submit(); }); $("#form_vacancy").on("submit", function(event) { event.preventDefault(); form_vacancy_submit(); }); $('input[type="file"]').change(function(e) { var filename = e.target.files[0].name; $(".filename").text(filename); $(this).next("label").text("Заменить файл") }); $("#policy").on("change", function() { if($(this).is(':checked')) { $("#vacancy_send_button").attr("disabled", false); } else { $("#vacancy_send_button").attr("disabled", true); } }); });