142 lines
4.0 KiB
JavaScript
142 lines
4.0 KiB
JavaScript
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);
|
||
}
|
||
});
|
||
}); |