588 lines
21 KiB
JavaScript
588 lines
21 KiB
JavaScript
|
|
// contacts
|
|||
|
|
// TG: https://t.me/wwdev
|
|||
|
|
$(function() {
|
|||
|
|
$(document).ready(function(){
|
|||
|
|
|
|||
|
|
$(".js-progress-mask").inputmask("99");
|
|||
|
|
$(".js-inn-mask").inputmask("999999999999");
|
|||
|
|
$(".js-code-mask").inputmask("999999");
|
|||
|
|
$(".js-date-mask").inputmask("99-99-9999",{ "placeholder": "__-__-____" });
|
|||
|
|
$(".js-inn-mask2").inputmask("9{10,12}");
|
|||
|
|
|
|||
|
|
$(".js-payed-mask").inputmask('currency', {
|
|||
|
|
rightAlign: true
|
|||
|
|
});
|
|||
|
|
let month =['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'];
|
|||
|
|
let days = ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс'];
|
|||
|
|
var birthday = datepicker('input[name="birthday"]',
|
|||
|
|
{
|
|||
|
|
customOverlayMonths: month,
|
|||
|
|
customMonths: month,
|
|||
|
|
customDays: days,
|
|||
|
|
maxDate: new Date(),
|
|||
|
|
formatter: (input, date, instance) => {
|
|||
|
|
const value = date.toLocaleDateString()
|
|||
|
|
input.value = value // => '1/1/2099'
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
var contract_date = datepicker('input[name="contract_date"]',{
|
|||
|
|
customOverlayMonths: month,
|
|||
|
|
customMonths: month,
|
|||
|
|
customDays: days,
|
|||
|
|
maxDate: new Date(),
|
|||
|
|
formatter: (input, date, instance) => {
|
|||
|
|
const value = date.toLocaleDateString()
|
|||
|
|
input.value = value // => '1/1/2099'
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
var contract_date = datepicker('input[name="claim_date"]',{
|
|||
|
|
customOverlayMonths: month,
|
|||
|
|
customMonths: month,
|
|||
|
|
customDays: days,
|
|||
|
|
maxDate: new Date(),
|
|||
|
|
formatter: (input, date, instance) => {
|
|||
|
|
const value = date.toLocaleDateString()
|
|||
|
|
input.value = value // => '1/1/2099'
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
|
|||
|
|
var phone = document.querySelectorAll('.js-phone-mask');
|
|||
|
|
$('.js-phone-mask').inputmask('999 999-99-99');
|
|||
|
|
phone.forEach(el => {
|
|||
|
|
const iti = window.intlTelInput(el, {
|
|||
|
|
initialCountry: 'ru',
|
|||
|
|
separateDialCode: true,
|
|||
|
|
customContainer: ".form-item",
|
|||
|
|
excludeCountries: ["kz"],
|
|||
|
|
autoPlaceholder: 'aggressive',
|
|||
|
|
geoIpLookup: function(callback) {
|
|||
|
|
$.get('https://ipinfo.io', null, 'jsonp').always(resp => callback((resp && resp.country) ? resp.country : ''));
|
|||
|
|
},
|
|||
|
|
utilsScript: "libs/intl-tel-input-master/build/js/utils.js",
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
|
|||
|
|
$('.js-phone-mask').on('countrychange', e => {
|
|||
|
|
let $this = $(e.currentTarget),
|
|||
|
|
placeholder = $this.attr('placeholder'),
|
|||
|
|
mask = placeholder.replace(/[0-9]/g, 9);
|
|||
|
|
$this.val('').inputmask(mask);
|
|||
|
|
let inputCode = $(".code"),
|
|||
|
|
flag = document.querySelector(".iti__selected-flag"),
|
|||
|
|
codeTitle = flag.getAttribute("title");
|
|||
|
|
inputCode.val(codeTitle);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
function declOfNum(number, words) {
|
|||
|
|
return words[(number % 100 > 4 && number % 100 < 20) ? 2 : [2, 0, 1, 1, 1, 2][(number % 10 < 5) ? Math.abs(number) % 10 : 5]];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Загрузка файла
|
|||
|
|
$('input[type="file"]').on("change",function() {
|
|||
|
|
console.log("change fired");
|
|||
|
|
var i = $(this).prev('label').clone();
|
|||
|
|
var file = $(this)[0].files[0].name;
|
|||
|
|
var length=$(this)[0].files.length;
|
|||
|
|
if(length==1) {$(this).next().text(file);}
|
|||
|
|
if(length>=2) { $(this).next().text('Загружено '+length+' '+declOfNum(length, ['файл', 'файла', 'файлов']));}
|
|||
|
|
|
|||
|
|
updateSize($(this));
|
|||
|
|
|
|||
|
|
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
|
|||
|
|
function updateSize(elem) {
|
|||
|
|
var filesQty = elem[0].files.length;
|
|||
|
|
if(filesQty>10) {
|
|||
|
|
elem.closest('.form-item').find('.form-item__warning').text("Разрешено не более 10 файлов");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
elem.closest('.form-item').find('.form-item__warning').text('');
|
|||
|
|
|
|||
|
|
var formats = ['pdf','jpg','png','gif','jpeg'];
|
|||
|
|
for(var i=0; i<filesQty; i++) {
|
|||
|
|
|
|||
|
|
var file = elem[0].files[i],
|
|||
|
|
ext = "не определилось",
|
|||
|
|
parts = file.name.split('.');
|
|||
|
|
if (parts.length > 1) ext = parts.pop();
|
|||
|
|
if(!formats.includes(ext)) {
|
|||
|
|
elem.closest('.form-item').find('.form-item__warning').append('<div> Файл '+file.name+' не подходит по формату. Доступные форматы: .pdf, .jpg, .png, .gif </div>');
|
|||
|
|
elem.addClass('error');
|
|||
|
|
} else {
|
|||
|
|
// elem.closest('.form-item').find('.form-item__warning').text();
|
|||
|
|
if((file.size/1024/1024) > 5){
|
|||
|
|
elem.closest('.form-item').find('.form-item__warning').append('<div>Размер файла '+file.name+' превышает 5 Мб. </div>');
|
|||
|
|
} else {
|
|||
|
|
elem.removeClass('error');
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
let index=1;
|
|||
|
|
|
|||
|
|
$('.js-btn-next').on("click",function(e){
|
|||
|
|
e.preventDefault();
|
|||
|
|
let isvalid=validate_step(index);
|
|||
|
|
|
|||
|
|
if(isvalid) {
|
|||
|
|
index++;
|
|||
|
|
$('.span-progress .current').text(index);
|
|||
|
|
if(index==5) {
|
|||
|
|
$(this).hide();
|
|||
|
|
$('.btn--submit').show();
|
|||
|
|
} else {
|
|||
|
|
$(this).show();
|
|||
|
|
$('.js-btn-prev').show();
|
|||
|
|
}
|
|||
|
|
$('.form-step').removeClass('active');
|
|||
|
|
$('.form-step[data-step='+index+']').addClass('active');
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
$('.js-btn-prev').on("click",function(e){
|
|||
|
|
e.preventDefault();
|
|||
|
|
index--;
|
|||
|
|
if(index==1) {$(this).hide();} else $(this).show();
|
|||
|
|
if(index<1) index=1;
|
|||
|
|
if(index<5) {
|
|||
|
|
$('.btn--submit').hide();
|
|||
|
|
$('.js-btn-next').show();
|
|||
|
|
}
|
|||
|
|
$('.span-progress .current').text(index);
|
|||
|
|
$('.form-step').removeClass('active');
|
|||
|
|
$('.form-step[data-step='+index+']').addClass('active');
|
|||
|
|
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
$('select[name=claim]').on("change",function(e){
|
|||
|
|
if($(this).val()=='Нет') {
|
|||
|
|
$(this).closest('.form-step').find('input[type=text]').addClass('disabled');
|
|||
|
|
$(this).closest('.form-step').find('input[type=file]').addClass('disabled');
|
|||
|
|
$(this).closest('.form-step').find('input[type=file]').parent().addClass('disabled');
|
|||
|
|
} else {
|
|||
|
|
$(this).closest('.form-step').find('input[type=text]').removeClass('disabled');
|
|||
|
|
$(this).closest('.form-step').find('input[type=file]').removeClass('disabled');
|
|||
|
|
$(this).closest('.form-step').find('input[type=file]').parent().removeClass('disabled');
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
|
|||
|
|
function validate_step(step_index){
|
|||
|
|
let inputs=$('.form-step.active').find('input[type="text"], input[type="number"], input[type="file"],input[type="email"], textarea.form-input, input[type="checkbox"], select');
|
|||
|
|
let all_filled=false;
|
|||
|
|
let res_array=[];
|
|||
|
|
inputs.each(function(e){
|
|||
|
|
let field_fill=false;
|
|||
|
|
if((($(this).val()=='' || $(this).find("option:selected")=='') && !$(this).hasClass('disabled') && !$(this).hasClass('notvalidate') && !$(this).hasClass('error') )) {
|
|||
|
|
$(this).closest('.form-item').find('.form-item__warning').text('Пожалуйста, заполните все обязательные поля');
|
|||
|
|
field_fill=false;
|
|||
|
|
|
|||
|
|
} else {
|
|||
|
|
$(this).parent().find('.form-item__warning').text('');
|
|||
|
|
|
|||
|
|
if($(this).attr('type')=='email'){
|
|||
|
|
if(validateEmail($(this).val())) {
|
|||
|
|
field_fill=true;
|
|||
|
|
} else {
|
|||
|
|
field_fill=false;
|
|||
|
|
$(this).parent().find('.form-item__warning').text($(this).data('warmes'));
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
field_fill=true;
|
|||
|
|
}
|
|||
|
|
if($(this).attr('type')=='checkbox'){
|
|||
|
|
|
|||
|
|
if($(this).is(':checked')){
|
|||
|
|
field_fill=true;
|
|||
|
|
$(this).parent().parent().find('.form-item__warning').text();
|
|||
|
|
} else {
|
|||
|
|
field_fill=false;
|
|||
|
|
$(this).parent().parent().find('.form-item__warning').text('Пожалуйста, заполните все обязательные поля');
|
|||
|
|
}
|
|||
|
|
if(($(this).parent().hasClass('js-enable-inputs'))){
|
|||
|
|
field_fill=true;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
res_array.push(field_fill);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// if((step_index==3) && $('.form-step[data-step='+step_index+']').find('input[type="checkbox"]:checked').length<1) {
|
|||
|
|
// $('.form__warning').show();
|
|||
|
|
// $('.form__warning').text('Выберите хотя 1 страховой случай');
|
|||
|
|
// return false;
|
|||
|
|
// } else {
|
|||
|
|
// $('.form__warning').text('Пожалуйста, заполните все обязательные поля');
|
|||
|
|
// }
|
|||
|
|
|
|||
|
|
if(!res_array.includes(false)){
|
|||
|
|
$('.form__warning').hide();
|
|||
|
|
return true;
|
|||
|
|
} else {
|
|||
|
|
$('.form__warning').show();
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
const validateEmail = (email) => {
|
|||
|
|
return email.match(
|
|||
|
|
/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
|
|||
|
|
);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
$('.js-enable-inputs input[type=checkbox]').on("change",function(e){
|
|||
|
|
e.preventDefault();
|
|||
|
|
$(this).closest('.form-item').find('input[type=file]').toggleClass('disabled');
|
|||
|
|
$(this).closest('.form-item').find('input[type=file]+label').toggleClass('disabled');
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
function send_sms(){
|
|||
|
|
var sended_code = Math.floor(Math.random()*(999999-100000+1)+100000);
|
|||
|
|
var smsFormData = new FormData();
|
|||
|
|
smsFormData.append('smscode',sended_code);
|
|||
|
|
smsFormData.append('phonenumber',$('[name="phonenumber"]').val());
|
|||
|
|
$.ajax({
|
|||
|
|
url: '/sms-test.php',
|
|||
|
|
method: 'post',
|
|||
|
|
cache: false,
|
|||
|
|
contentType: false,
|
|||
|
|
processData: false,
|
|||
|
|
data: smsFormData,
|
|||
|
|
dataType : 'json',
|
|||
|
|
success: function(data) {
|
|||
|
|
console.log(data);
|
|||
|
|
|
|||
|
|
return false;
|
|||
|
|
},
|
|||
|
|
error: function (jqXHR, exception) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
$('.js-code-warning').text('Код отправлен на ваш номер телефона');
|
|||
|
|
$.fancybox.open({
|
|||
|
|
src: '#confirm_sms',
|
|||
|
|
type: 'inline'
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
|
|||
|
|
$('.fancybox-close-small').click(function(e) {
|
|||
|
|
$('button[type="submit"]').attr("disabled", false);
|
|||
|
|
$('button[type="submit"]').attr("disabled", false);
|
|||
|
|
$('button[type="submit"]').text("Подать обращение");
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
|
|||
|
|
return sended_code;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function countDown(elm, duration, fn){
|
|||
|
|
// Set the date we're counting down to
|
|||
|
|
var countDownDate = new Date().getTime() + (1000 * duration);
|
|||
|
|
// Update the count down every 1 second
|
|||
|
|
var x = setInterval(function() {
|
|||
|
|
// Get today's date and time
|
|||
|
|
var now = new Date().getTime();
|
|||
|
|
|
|||
|
|
// Find the distance between now and the count down date
|
|||
|
|
var distance = countDownDate - now;
|
|||
|
|
|
|||
|
|
// Time calculations for days, hours, minutes and seconds
|
|||
|
|
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
|
|||
|
|
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
|||
|
|
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
|
|||
|
|
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
|
|||
|
|
|
|||
|
|
// Output the result in an element with id="demo"
|
|||
|
|
elm.innerHTML = minutes + "м " + seconds + "с ";
|
|||
|
|
|
|||
|
|
// If the count down is over, write some text
|
|||
|
|
if (distance < 0) {
|
|||
|
|
clearInterval(x);
|
|||
|
|
fn();
|
|||
|
|
elm.innerHTML = "";
|
|||
|
|
$('.sms-countdown').hide();
|
|||
|
|
}
|
|||
|
|
}, 1000);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$('.js-send-sms').on('click', function(e) {
|
|||
|
|
$('.form form').submit();
|
|||
|
|
$('.js-send-sms').hide();
|
|||
|
|
$('.js-code-warning').show();
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
$('.form form').submit(function(e){
|
|||
|
|
if(!validate_step(index)){ e.preventDefault(); } else {
|
|||
|
|
|
|||
|
|
$('.sms-countdown').show();
|
|||
|
|
|
|||
|
|
countDown(document.querySelector('.sms-countdown .time'), 120, function(){
|
|||
|
|
$('.js-send-sms').show();
|
|||
|
|
$('.sms-checking button.js-accept-sms').hide();
|
|||
|
|
$('.js-code-warning').hide();
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
let sended_code=send_sms();
|
|||
|
|
|
|||
|
|
e.preventDefault();
|
|||
|
|
|
|||
|
|
$('button[type="submit"]').attr("disabled", true);
|
|||
|
|
$('.sms-checking button.js-accept-sms').show()
|
|||
|
|
|
|||
|
|
$('.sms-checking button.js-accept-sms').on('click', function(e) {
|
|||
|
|
|
|||
|
|
e.preventDefault();
|
|||
|
|
|
|||
|
|
if($('.sms-checking input[type="text"]').val() == sended_code) {
|
|||
|
|
|
|||
|
|
$('.js-code-warning').text('');
|
|||
|
|
$('.js-code-warning').hide();
|
|||
|
|
$('.js-send-sms').hide();
|
|||
|
|
$('.loader-wrap').removeClass('d-none');
|
|||
|
|
$('button[type="submit"]').attr("disabled", false);
|
|||
|
|
$('button[type="submit"]').text("Данные отправляются...");
|
|||
|
|
var formData = new FormData();
|
|||
|
|
|
|||
|
|
|
|||
|
|
jQuery.each(jQuery('input[type=file].js-attach'), function(i, file) {
|
|||
|
|
let field_name=jQuery(this).data('crm_name');
|
|||
|
|
jQuery.each(jQuery(this)[0].files, function(i, file) {
|
|||
|
|
formData.append(field_name+'-'+i, file);
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// jQuery.each(jQuery('input[name=contract_file]')[0].files, function(i, file) {
|
|||
|
|
// formData.append('file_15_1-'+i, file);
|
|||
|
|
// });
|
|||
|
|
// jQuery.each(jQuery('input[name=pay_confirm]')[0].files, function(i, file) {
|
|||
|
|
// formData.append('file_15_2-'+i, file);
|
|||
|
|
// });
|
|||
|
|
// jQuery.each(jQuery('input[name=programm_file]')[0].files, function(i, file) {
|
|||
|
|
// formData.append('file_15_3-'+i, file);
|
|||
|
|
// });
|
|||
|
|
// jQuery.each(jQuery('input[name=screen]')[0].files, function(i, file) {
|
|||
|
|
// formData.append('file_15_4-'+i, file);
|
|||
|
|
// });
|
|||
|
|
// jQuery.each(jQuery('input[name=claim_file]')[0].files, function(i, file) {
|
|||
|
|
// formData.append('file_15_5-'+i, file);
|
|||
|
|
// });
|
|||
|
|
// jQuery.each(jQuery('input[name=claim_file_respons]')[0].files, function(i, file) {
|
|||
|
|
// formData.append('file_15_6-'+i, file);
|
|||
|
|
// });
|
|||
|
|
// jQuery.each(jQuery('input[name=pay_return]')[0].files, function(i, file) {
|
|||
|
|
// formData.append('file_15_7-'+i, file);
|
|||
|
|
// });
|
|||
|
|
// jQuery.each(jQuery('input[name=other_docs]')[0].files, function(i, file) {
|
|||
|
|
// formData.append('file_15_8-'+i, file);
|
|||
|
|
// });
|
|||
|
|
|
|||
|
|
//направление обращения
|
|||
|
|
|
|||
|
|
formData.append('cf_1187',jQuery('[name="cf_1187"]').val()); // Личные данные
|
|||
|
|
formData.append('firstname',jQuery('[name="firstname"]').val()); //фамилия
|
|||
|
|
formData.append('lastname',jQuery('[name="lastname"]').val()); // имя
|
|||
|
|
formData.append('cf_1157',jQuery('[name="patronymic"]').val()); // отчество
|
|||
|
|
formData.append('mobile',jQuery('[name="phonenumber"]').val()); // мобильный телефон
|
|||
|
|
formData.append('email',jQuery('[name="email"]').val()); // электронная почта
|
|||
|
|
formData.append('mailingstreet',jQuery('[name="mailingstreet"]').val()); // адрес регистрации
|
|||
|
|
formData.append('birthday',jQuery('[name="birthday"]').val()); // день рождения
|
|||
|
|
formData.append('cf_1263',jQuery('[name="born_adres"]').val()); // место рождения
|
|||
|
|
formData.append('cf_1257',jQuery('[name="inn"]').val()); // ИНН заявителя
|
|||
|
|
formData.append('cf_1273',jQuery('[name="requisite"]').val()); // банковские реквизиты
|
|||
|
|
formData.append('description',jQuery('[name="message"]').val()); // Опишите подробно причину обращения
|
|||
|
|
formData.append('cf_1786',jQuery('[name="cf_1786"]').val()); // Причина обращения
|
|||
|
|
|
|||
|
|
|
|||
|
|
//контрагент
|
|||
|
|
formData.append('cf_1161',jQuery('[name="contr_name"]').val()); // наименование контаргента
|
|||
|
|
formData.append('cf_1163',jQuery('[name="contr_inn"]').val()); // ИНН контрагента
|
|||
|
|
formData.append('cf_1165',jQuery('[name="contr_adres"]').val()); // юридический адрес контрагента
|
|||
|
|
formData.append('cf_1167',jQuery('[name="contr_email"]').val()); //email контрагента
|
|||
|
|
formData.append('cf_1560',jQuery('[name="contr_phone"]').val()); // телефон контрагента
|
|||
|
|
formData.append('cf_1558',jQuery('[name="contr_website"]').val()); // сайт контрагента
|
|||
|
|
|
|||
|
|
//сведения о договоре
|
|||
|
|
|
|||
|
|
formData.append(' cf_1173',jQuery('[name="contract_date"]').val()); //дата заключения договора
|
|||
|
|
formData.append(' cf_1171',jQuery('[name="payed"]').val()); // Оплачено за обучение, рублей.
|
|||
|
|
formData.append(' cf_1169',jQuery('[name="programm"]').val()); // Образовательная программа
|
|||
|
|
formData.append(' cf_1461',jQuery('[name="study_progress"]').val()); // прогресс обучения
|
|||
|
|
|
|||
|
|
//претензионный порядок
|
|||
|
|
|
|||
|
|
formData.append('cf_1415',jQuery('[name="claim"]').val()); //Самостоятельно соблюден претензионный порядок
|
|||
|
|
formData.append('cf_1181',jQuery('[name="claim_date"]').val()); //Дата направления претензии
|
|||
|
|
formData.append('cf_1183',jQuery('[name="claym_return"]').val()); //Вернули в претензионном порядке
|
|||
|
|
|
|||
|
|
//прочее
|
|||
|
|
formData.append('cf_1706',jQuery('[name="code"]').val()); //код подтверждения из смс
|
|||
|
|
formData.append('cf_1738',jQuery('[name="agree"]').val()); //согласие на сайте
|
|||
|
|
formData.append('cf_1590',jQuery('[name="cf_1590"]').val()); // ip
|
|||
|
|
formData.append('cf_1592',jQuery('[name="cf_1592"]').val()); // регион
|
|||
|
|
formData.append('cf_1834',jQuery('[name="cf_1834"]').val()); //REF
|
|||
|
|
|
|||
|
|
$.ajax({
|
|||
|
|
url: '/server.php',
|
|||
|
|
method: 'post',
|
|||
|
|
cache: false,
|
|||
|
|
contentType: false,
|
|||
|
|
processData: false,
|
|||
|
|
data: formData,
|
|||
|
|
dataType : 'json',
|
|||
|
|
success: function(data) {
|
|||
|
|
if(data == 'Message has been sent') {
|
|||
|
|
alert('success! Ваше обращение направлено');
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
error: function (jqXHR, exception) {
|
|||
|
|
if (jqXHR.status === 0) {
|
|||
|
|
alert('Not connect. Verify Network.');
|
|||
|
|
} else if (jqXHR.status == 404) {
|
|||
|
|
alert('Requested page not found (404).');
|
|||
|
|
} else if (jqXHR.status == 500) {
|
|||
|
|
alert('Internal Server Error (500).');
|
|||
|
|
} else if (exception === 'parsererror') {
|
|||
|
|
// alert('Requested JSON parse failed.');
|
|||
|
|
|
|||
|
|
|
|||
|
|
setTimeout(function(){
|
|||
|
|
|
|||
|
|
$('.loader-wrap').addClass('d-none');
|
|||
|
|
$.fancybox.close();
|
|||
|
|
|
|||
|
|
$.fancybox.open({
|
|||
|
|
src: '#success_modal',
|
|||
|
|
type: 'inline'
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
setTimeout(function(){
|
|||
|
|
$.fancybox.close();
|
|||
|
|
// form.trigger("reset");
|
|||
|
|
},3000)
|
|||
|
|
|
|||
|
|
setTimeout(function(){
|
|||
|
|
window.location.href = "https://clientright.ru/donesend";
|
|||
|
|
},3000)
|
|||
|
|
|
|||
|
|
|
|||
|
|
},3000)
|
|||
|
|
|
|||
|
|
$('button[type="submit"]').text("Отправить");
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
} else if (exception === 'timeout') {
|
|||
|
|
alert('Time out error.');
|
|||
|
|
} else if (exception === 'abort') {
|
|||
|
|
alert('Ajax request aborted.');
|
|||
|
|
} else {
|
|||
|
|
alert('Uncaught Error. ' + jqXHR.responseText);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
return false;
|
|||
|
|
} else {
|
|||
|
|
$('.js-code-warning').text('Неверный код');
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
$('input[name=contr_name],input[name=contr_adres],input[name=contr_inn]').keyup(function(e){
|
|||
|
|
var sourceInput = $(this);
|
|||
|
|
var query = $(this).val();
|
|||
|
|
var settings = {
|
|||
|
|
"url": "https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/party",
|
|||
|
|
"method": "POST",
|
|||
|
|
"timeout": 0,
|
|||
|
|
"headers": {
|
|||
|
|
"Authorization": "Token f5d6928d7490cd44124ccae11a08c7fa5625d48c",
|
|||
|
|
"Content-Type": "application/json",
|
|||
|
|
"Cookie": "__ddg1_=BoLd7l5yOCjL9tr6qUth"
|
|||
|
|
},
|
|||
|
|
"data": JSON.stringify({
|
|||
|
|
"query": query
|
|||
|
|
}),
|
|||
|
|
};
|
|||
|
|
$('.autocomplete__item').remove();
|
|||
|
|
var address_array = [];
|
|||
|
|
$.ajax(settings).done(function (response) {
|
|||
|
|
for(let i=0; i<response.suggestions.length; i++) {
|
|||
|
|
$('<div class="autocomplete__item" data-address="'+response.suggestions[i].data.address.value+'" data-inn="'+response.suggestions[i].data.inn+'">'+response.suggestions[i].value+'</div>').appendTo(sourceInput.closest('.form-item').find('.form-item__dropdown'));
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
$(document).on('click', '.autocomplete__item', function() {
|
|||
|
|
let currentAutocompleteItem=$(this);
|
|||
|
|
let prefix = $(this).closest('.autocomplete').data('groupename');
|
|||
|
|
$('.'+prefix+'_name').val(currentAutocompleteItem.text());
|
|||
|
|
$('.'+prefix+'_adres').val(currentAutocompleteItem.attr('data-address'));
|
|||
|
|
$('.'+prefix+'_inn').val(currentAutocompleteItem.attr('data-inn'));
|
|||
|
|
|
|||
|
|
currentAutocompleteItem.closest('.form-item').find('.form-item__dropdown').empty();
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
function createSuggestions($form){
|
|||
|
|
$form.find(".js-adres").suggestions({
|
|||
|
|
token: "d2fa8613e186d54c6c62fc321414552353ffdfa8",
|
|||
|
|
type: "ADDRESS",
|
|||
|
|
});
|
|||
|
|
$form.find("[name='firstname']").suggestions({
|
|||
|
|
token: "d2fa8613e186d54c6c62fc321414552353ffdfa8",
|
|||
|
|
type: "NAME",
|
|||
|
|
});
|
|||
|
|
$form.find("[name='lastname']").suggestions({
|
|||
|
|
token: "d2fa8613e186d54c6c62fc321414552353ffdfa8",
|
|||
|
|
type: "NAME",
|
|||
|
|
});
|
|||
|
|
$form.find("[name='patronymic']").suggestions({
|
|||
|
|
token: "d2fa8613e186d54c6c62fc321414552353ffdfa8",
|
|||
|
|
type: "NAME",
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$(document).ready(function(){
|
|||
|
|
setTimeout(function() {
|
|||
|
|
var $form = $(".form form");
|
|||
|
|
createSuggestions($form);
|
|||
|
|
}, 1000);
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
|
|||
|
|
|