Skip to content

Instantly share code, notes, and snippets.

@sidor1989
Last active March 31, 2019 17:43
Show Gist options
  • Save sidor1989/24386d9aff4fe81fbb1e547ac589e542 to your computer and use it in GitHub Desktop.
Save sidor1989/24386d9aff4fe81fbb1e547ac589e542 to your computer and use it in GitHub Desktop.
validateForm.js
console.log('script.js подключен !!!');
/*
jQuery Masked Input Plugin
Copyright (c) 2007 - 2015 Josh Bush (digitalbush.com)
Licensed under the MIT license (http://digitalbush.com/projects/masked-input-plugin/#license)
Version: 1.4.1
*/
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){var b,c=navigator.userAgent,d=/iphone/i.test(c),e=/chrome/i.test(c),f=/android/i.test(c);a.mask={definitions:{9:"[0-9]",a:"[A-Za-z]","*":"[A-Za-z0-9]"},autoclear:!0,dataName:"rawMaskFn",placeholder:"_"},a.fn.extend({caret:function(a,b){var c;if(0!==this.length&&!this.is(":hidden"))return"number"==typeof a?(b="number"==typeof b?b:a,this.each(function(){this.setSelectionRange?this.setSelectionRange(a,b):this.createTextRange&&(c=this.createTextRange(),c.collapse(!0),c.moveEnd("character",b),c.moveStart("character",a),c.select())})):(this[0].setSelectionRange?(a=this[0].selectionStart,b=this[0].selectionEnd):document.selection&&document.selection.createRange&&(c=document.selection.createRange(),a=0-c.duplicate().moveStart("character",-1e5),b=a+c.text.length),{begin:a,end:b})},unmask:function(){return this.trigger("unmask")},mask:function(c,g){var h,i,j,k,l,m,n,o;if(!c&&this.length>0){h=a(this[0]);var p=h.data(a.mask.dataName);return p?p():void 0}return g=a.extend({autoclear:a.mask.autoclear,placeholder:a.mask.placeholder,completed:null},g),i=a.mask.definitions,j=[],k=n=c.length,l=null,a.each(c.split(""),function(a,b){"?"==b?(n--,k=a):i[b]?(j.push(new RegExp(i[b])),null===l&&(l=j.length-1),k>a&&(m=j.length-1)):j.push(null)}),this.trigger("unmask").each(function(){function h(){if(g.completed){for(var a=l;m>=a;a++)if(j[a]&&C[a]===p(a))return;g.completed.call(B)}}function p(a){return g.placeholder.charAt(a<g.placeholder.length?a:0)}function q(a){for(;++a<n&&!j[a];);return a}function r(a){for(;--a>=0&&!j[a];);return a}function s(a,b){var c,d;if(!(0>a)){for(c=a,d=q(b);n>c;c++)if(j[c]){if(!(n>d&&j[c].test(C[d])))break;C[c]=C[d],C[d]=p(d),d=q(d)}z(),B.caret(Math.max(l,a))}}function t(a){var b,c,d,e;for(b=a,c=p(a);n>b;b++)if(j[b]){if(d=q(b),e=C[b],C[b]=c,!(n>d&&j[d].test(e)))break;c=e}}function u(){var a=B.val(),b=B.caret();if(o&&o.length&&o.length>a.length){for(A(!0);b.begin>0&&!j[b.begin-1];)b.begin--;if(0===b.begin)for(;b.begin<l&&!j[b.begin];)b.begin++;B.caret(b.begin,b.begin)}else{for(A(!0);b.begin<n&&!j[b.begin];)b.begin++;B.caret(b.begin,b.begin)}h()}function v(){A(),B.val()!=E&&B.change()}function w(a){if(!B.prop("readonly")){var b,c,e,f=a.which||a.keyCode;o=B.val(),8===f||46===f||d&&127===f?(b=B.caret(),c=b.begin,e=b.end,e-c===0&&(c=46!==f?r(c):e=q(c-1),e=46===f?q(e):e),y(c,e),s(c,e-1),a.preventDefault()):13===f?v.call(this,a):27===f&&(B.val(E),B.caret(0,A()),a.preventDefault())}}function x(b){if(!B.prop("readonly")){var c,d,e,g=b.which||b.keyCode,i=B.caret();if(!(b.ctrlKey||b.altKey||b.metaKey||32>g)&&g&&13!==g){if(i.end-i.begin!==0&&(y(i.begin,i.end),s(i.begin,i.end-1)),c=q(i.begin-1),n>c&&(d=String.fromCharCode(g),j[c].test(d))){if(t(c),C[c]=d,z(),e=q(c),f){var k=function(){a.proxy(a.fn.caret,B,e)()};setTimeout(k,0)}else B.caret(e);i.begin<=m&&h()}b.preventDefault()}}}function y(a,b){var c;for(c=a;b>c&&n>c;c++)j[c]&&(C[c]=p(c))}function z(){B.val(C.join(""))}function A(a){var b,c,d,e=B.val(),f=-1;for(b=0,d=0;n>b;b++)if(j[b]){for(C[b]=p(b);d++<e.length;)if(c=e.charAt(d-1),j[b].test(c)){C[b]=c,f=b;break}if(d>e.length){y(b+1,n);break}}else C[b]===e.charAt(d)&&d++,k>b&&(f=b);return a?z():k>f+1?g.autoclear||C.join("")===D?(B.val()&&B.val(""),y(0,n)):z():(z(),B.val(B.val().substring(0,f+1))),k?b:l}var B=a(this),C=a.map(c.split(""),function(a,b){return"?"!=a?i[a]?p(b):a:void 0}),D=C.join(""),E=B.val();B.data(a.mask.dataName,function(){return a.map(C,function(a,b){return j[b]&&a!=p(b)?a:null}).join("")}),B.one("unmask",function(){B.off(".mask").removeData(a.mask.dataName)}).on("focus.mask",function(){if(!B.prop("readonly")){clearTimeout(b);var a;E=B.val(),a=A(),b=setTimeout(function(){B.get(0)===document.activeElement&&(z(),a==c.replace("?","").length?B.caret(0,a):B.caret(a))},10)}}).on("blur.mask",v).on("keydown.mask",w).on("keypress.mask",x).on("input.mask paste.mask",function(){B.prop("readonly")||setTimeout(function(){var a=A(!0);B.caret(a),h()},0)}),e&&f&&B.off("input.mask").on("input.mask",u),A()})}})});
function showAjaxError()
{
var ajaxErrorMessage="При загрузке данных произошла ошибка! Возможно, отсутствует соединение с Internet, попробуйте, пожалуйста, позже";
alert(ajaxErrorMessage);
}
$(window).load(function() {
//Вешаем на контейнер инициализацию формы
$('.customFormContainer').each(function(){
customFormInit($(this), $(this));
});
//Вешаем на ссылку инициализацию формы
$(document).on('click','.customFormLink',function(){
customFormInit('body', $(this));
return false;
});
//Очищаем числовые поля от лишних символов
$(document).on('keyup blur','.customFormDigitalField',function(){
this.value = this.value.replace (/[\D]+/, '');
});
$(document).on('focus','.customFormFieldInputText',function(){
$(this).removeClass('customErrorField');
$('.customFormErrors').fadeOut(300);
});
//Вешаемся на отправку формы
$(document).on('submit','.customForm form',function(){
var curForm=$(this);
var curSubmitBTN=curForm.find('input[type="submit"]');
var btnText=curSubmitBTN.val();
var curFormErrorContainer=curForm.find('.customFormErrors');
if (curForm.parents('.customFormContainer').length>0)
{
var needRefreshForm=true;
} else
{
var needRefreshForm=false;
}
curFormErrorContainer.hide();
/*Данные счётчика метрики*/
var metrikaCounter=curForm.find('input.metrikaCounter').val();
var metrikaTargetTry=curForm.find('input.metrikaTargetTry').val();
var metrikaTargetSuccess=curForm.find('input.metrikaTargetSuccess').val();
if (metrikaCounter && metrikaTargetTry && metrikaTargetSuccess)
{
window['yaCounter'+metrikaCounter].reachGoal(metrikaTargetTry);
}
/*Данные счётчика метрики --- конец*/
/*Данные счётчика GA*/
var gaTargetTry=curForm.find('input.gaTargetTry').val();
var gaTargetSuccess=curForm.find('input.gaTargetSuccess').val();
if (gaTargetTry && gaTargetSuccess)
{
ga('send', 'event', 'button', 'click', gaTargetTry);
}
/*Данные счётчика GA --- конец*/
var redirectURL=curForm.find('input.redirectURL').val();
var curName=curForm.find('input[name="name"]').first();
var curEmail=curForm.find('input[name="email"]').first();
var curPhone=curForm.find('input[name="phone"]').first();
var curTextarea=curForm.find('textarea[name="textarea"]').first();
var curFormCode=curForm.find('input[name="form_code"]').first().val();
var formIsEmpty=false;
var curNameVal=$.trim(curName.val());
var curEmailVal=$.trim(curEmail.val());
var curPhoneVal=$.trim(curPhone.val());
var curTextareaVal=$.trim(curTextarea.val());
//var curFormName=curForm.find('.customFormName').html();
//var curFormText=curForm.find('.customFormText').html();
var initParams=curForm.data('init-params');
//var curFormTitle=curForm.find('input[name="form_title"]').val(curFormName);
//проверяем имя
if (curName.length!=0)
{
if (curName.hasClass('customFormFieldRequired'))
{
if (curNameVal.length<3)
{
curName.addClass('customErrorField');
curForm.find('.customFormErrorsNameEmpty').show();
} else
{
curName.removeClass('customErrorField');
curForm.find('.customFormErrorsNameEmpty').hide();
}
}
}
//проверяем e-mail
if (curEmail.length!=0)
{
if (curEmail.hasClass('customFormFieldRequired'))
{
curForm.find('.customFormErrorsMailError').hide();
curForm.find('.customFormErrorsMailEmpty').hide();
curForm.find('.customFormErrorsMailDomainError').hide();
if (curEmailVal.length>0)
{
var email_pattern=/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,14}$/i;
if (email_pattern.test(curEmailVal))
{
curForm.find('.customFormErrorsMailError').hide();
$.ajax
({
url: "/ajax/checkDomain.php",
data: {mail:curEmailVal},
type: "POST",
dataType: 'json',
async: false,
cache: false,
success: function(result)
{
if (result.success=="1")
{
curEmail.removeClass('customErrorField');
curForm.find('.customFormErrorsMailDomainError').hide();
} else
{
curEmail.addClass('customErrorField');
curForm.find('.customFormErrorsMailDomainError').show();
}
},
error: function(xhr, ajaxOptions, thrownError){
var ajaxStatus="Status: "+xhr.status+" Error: "+thrownError+"\n"+ajaxOptions;
}
});
} else
{
curEmail.addClass('customErrorField');
curForm.find('.customFormErrorsMailError').show();
}
} else
{
curEmail.addClass('customErrorField');
curForm.find('.customFormErrorsMailEmpty').show();
}
}
}
//проверяем телефон
if (curPhone.hasClass('customFormFieldRequired'))
{
curForm.find('.customFormErrorsPhoneEmpty').hide();
if (curPhoneVal.length!=17)
{
curPhone.addClass('customErrorField');
curForm.find('.customFormErrorsPhoneEmpty').show();
} else
{
curPhone.removeClass('customErrorField');
curForm.find('.customFormErrorsPhoneEmpty').hide();
}
}
//проверяем текстовое поле
if (curTextarea.hasClass('customFormFieldRequired'))
{
if (curTextareaVal.length>0)
{
curTextarea.removeClass('customErrorField');
curForm.find('.customFormErrorsTextareaError').hide();
} else
{
curTextarea.addClass('customErrorField');
curForm.find('.customFormErrorsTextareaError').show();
}
}
//проверяем оценку
if (curForm.find('input[name="grade"]').length>0)
{
var curGrade=curForm.find('input[name="grade"]');
var curGradeVal=parseInt(curGrade.val());
if (curGrade.hasClass('customFormFieldRequired'))
{
if (curGradeVal>0 && curGradeVal<6)
{
curGrade.removeClass('customErrorField');
curForm.find('.customFormErrorsGradeError').hide();
} else
{
curGrade.addClass('customErrorField');
curForm.find('.customFormErrorsGradeError').show();
}
}
}
//проверяем chekbox
if (curForm.find('input[name="cheker"]').length>0)
{
var curChekbox=curForm.find('input[name="cheker"]');
var chekIn = $("input:checkbox:checked").length;
if (curChekbox.hasClass('customFormFieldRequired'))
{
if (chekIn>0)
{
curChekbox.removeClass('customErrorField');
curForm.find('.customFormErrorsChekbox').hide();
} else
{
curChekbox.addClass('customErrorField');
curForm.find('.customFormErrorsChekbox').show();
}
}
}
var check = curForm.Chilren('') ;
//Если ошибок заполнения полей нет, пытаемся отправить форму
if (curForm.find('.customErrorField').length==0)
{
startWaitForm(curSubmitBTN);
var form = curForm[0]; // You need to use standart javascript object here
var formData = new FormData(form);
if (curForm.find('.file').length>0 && curForm.find('.file')[0].files.length>0)
{
formData.append('file', curForm.find('.file')[0].files[0]);
}
$.ajax
({
url: "/ajax/sendForm.php",
data: formData,
contentType: false,
processData: false,
type: "POST",
dataType: 'json',
cache: false,
success: function(res)
{
if (res.success=="1")
{
if (curFormCode=='index_calc')
{
$('.calc_tooths > div').removeClass('active');
}
if (metrikaCounter && metrikaTargetSuccess)
{
window['yaCounter'+metrikaCounter].reachGoal(metrikaTargetSuccess);
}
if (gaTargetTry && gaTargetSuccess)
{
ga('send', 'event', 'button', 'click', gaTargetSuccess);
}
if (redirectURL)
{
location.href=redirectURL;
} else
{
if (curFormCode=='new_otzyv')
{
var curSuccessRequestTitle=successRequestTitleOtzyv;
var curSuccessRequestBody=successRequestBodyOtzyv;
} else
{
var curSuccessRequestTitle=successRequestTitle;
var curSuccessRequestBody=successRequestBody;
}
$.magnificPopup.open({
items: {
src: $('<div class="white-popup white-popup-block zoom-anim-dialog"><div class="popup_header">'+curSuccessRequestTitle+'</div><div class="success_send">'+curSuccessRequestBody+'</div></div>'),
type: 'inline'
},
preloader: false,
modal: false,
removalDelay: 300,
closeOnBgClick: false,
mainClass: 'my-mfp-slide-bottom',
callbacks: {
open: function() {
if (IS_GADGET)
{
document.location.hash='popup';
observerCloseMagnificPopup();
$.magnificPopup.instance.close = function () {
removeHashForPopups();
$.magnificPopup.proto.close.call(this);
};
}
}
}
});
if (needRefreshForm)
{
customFormInit(curForm.parents('.customFormContainer'), curForm.parents('.customFormContainer'));
}
stopWaitForm(curSubmitBTN,btnText);
}
} else
{
stopWaitForm(curSubmitBTN,btnText);
alert(res.error);
}
},
error: function(xhr, ajaxOptions, thrownError){
var ajaxStatus="Status: "+xhr.status+" Error: "+thrownError+"\n"+ajaxOptions;
stopWaitForm(curSubmitBTN,btnText);
showAjaxError();
}
});
} else
{
stopWaitForm(curSubmitBTN,btnText,curFormErrorContainer,curForm,true);
}
return false;
});
});
//Функция, которая стартует перед отправкой формы и показывает процесс ожидания работы формы
function startWaitForm(formSubmitBtnObj)
{
formSubmitBtnObj.val('Подождите...');
formSubmitBtnObj.attr('disabled','disabled');
}
//Функция, которая стартует после отправки формы, завершает ожидание
function stopWaitForm(formSubmitBtnObj,btnText,curFormErrorContainer,curForm,needShowErrors)
{
window.setTimeout(function () {
formSubmitBtnObj.removeAttr('disabled');
formSubmitBtnObj.val(btnText);
if (needShowErrors)
{
curFormErrorContainer.fadeIn(300);
var curFormErrorContainerHeight=curFormErrorContainer.outerHeight();
var curFormErrorContainerBottom=curFormErrorContainerHeight-curForm.find('.customFormFields').position().top;
if (curFormErrorContainerBottom>0)
{
curFormErrorContainer.css('top','-'+curFormErrorContainerBottom+'px');
} else
{
curFormErrorContainer.css('top',Math.abs(curFormErrorContainerBottom)+'px');
}
}
}, 10);
}
/*Инициализация формы*/
function customFormInit(parentContainer, objInitiator)
{
var title=objInitiator.data('title');
var text=objInitiator.data('text');
var initParams=objInitiator.data('params');
var successText=objInitiator.data('success-text');
var metrikaCounter=objInitiator.data('metrika-counter');
var metrikaTargetTry=objInitiator.data('metrika-target-try');
var metrikaTargetSuccess=objInitiator.data('metrika-target-success');
var gaTargetTry=objInitiator.data('ga-target-try');
var gaTargetSuccess=objInitiator.data('ga-target-success');
var redirectURL=objInitiator.data('redirect-url');
var bntText=objInitiator.data('btn-text');
var formCode=objInitiator.data('form-code');
var serviceFormName=objInitiator.data('service-form-name');
var notPostToFO=objInitiator.data('not-post-to-fo');
var fieldTitleName=objInitiator.data('field-title-name');
var fieldTitleEmail=objInitiator.data('field-title-email');
var fieldTitlePhone=objInitiator.data('field-title-phone');
var customTextareaTitle=objInitiator.data('custom-textarea-title');
var fieldPlaceholderName=objInitiator.data('field-placeholder-name');
var fieldPlaceholderEmail=objInitiator.data('field-placeholder-email');
var fieldPlaceholderPhone=objInitiator.data('field-placeholder-phone');
var customTextareaPlaceholder=objInitiator.data('custom-textarea-placeholder');
var showName=initParams[0];
var showMail=initParams[1];
var showPhone=initParams[2];
var showTextarea=initParams[3];
var needName=initParams[5];
var needMail=initParams[6];
var needPhone=initParams[7];
var needTextarea=initParams[8];
var classRequired="";
var star="";
var formHTML="";
if (customTextareaPlaceholder==undefined)
{
customTextareaPlaceholder="";
}
if (parentContainer=="body")
{
formHTML='<div id="customFormPopupContainer">';
}
formHTML+='<div class="customForm"><div class="customFormContent">';
if (parentContainer=="body")
{
formHTML+='<div id="customFormCloseBtn"></div>';
}
formHTML+='<div class="tester"></div><form method="post" data-init-params="'+initParams+'" class="form_'+formCode+'"><div class="successText"><span>'+successText+'</span></div>';
if (title!=undefined)
{
formHTML+='<div class="popup_header">'+title+'</div>';
formHTML+='<input type="hidden" name="form_title" value="'+title+'" />';
}
if (text!=undefined)
{
formHTML+='<div class="customFormText">'+text+'</div>';
formHTML+='<input type="hidden" name="form_text" value="'+text+'" />';
}
formHTML+='<div class="customFormErrors"><div class="customFormErrorsNameEmpty">Введите ваше имя</div>'+
'<div class="customFormErrorsMailEmpty">Введите E-mail</div><div class="customFormErrorsMailError">Неправильный формат e-mail</div>'+
'<div class="customFormErrorsMailDomainError">Неправильно указан e-mail адрес</div>'+
'<div class="customFormErrorsGradeError">Оцените работу клиники</div>'+
'<div class="customFormErrorsPhoneEmpty">Введите номер телефона</div><div class="customFormErrorsPhoneError">Неправильный формат номера телефона</div>\
<div class="customFormErrorsChekbox">Нужно согласие на обработку данных</div>';
if (needTextarea=="Y")
{
formHTML+='<div class="customFormErrorsTextareaError">Вы не заполнили поле "'+customTextareaPlaceholder+'"</div>';
}
formHTML+='</div><div class="customFormFields">';
if (showName=="Y")
{
classRequired="";
star="";
if (needName=="Y")
{
classRequired=" customFormFieldRequired";
star=" *";
}
//Если существует параметр кастомного тайтла поля "Имя"
if (fieldTitleName!=undefined)
{
//Если параметр кастомного тайтла поля "Имя" НЕ пустой
if (fieldTitleName!="")
{
formHTML+='<div class="customFormFieldTitle">'+fieldTitleName+star+'</div>';
} else
{
//проверяем, указан ли кастомный placeholder
//Если параметр кастомного тайтла поля "Имя" ПУСТОЙ и существует кастомный placeholder
if (fieldPlaceholderName!=undefined)
{
//Если кастомный placeholder ПУСТОЙ
//то выводим стандартный тайтл!
if (fieldPlaceholderName=="")
{
formHTML+='<div class="customFormFieldTitle">Имя'+star+'</div>';
}
}
}
} else
{
//Если НЕ существует параметр кастомного тайтла поля "Имя"
formHTML+='<div class="customFormFieldTitle">Имя'+star+'</div>';
}
//Если существует кастомный placeholder поля "Имя"
if (fieldPlaceholderName!=undefined)
{
//Если он НЕ пустой
if (fieldPlaceholderName!="")
{
//проверяем, существует ли кастомный тайтл
if (fieldTitleName!=undefined)
{
//если кастомный тайтл пустой, выводим кастомный placeholder с признаком обязательности заполнения
if (fieldTitleName=="")
{
formHTML+='<div class="customFormFieldBody"><input type="text" name="name" class="form-control customFormFieldInputText'+classRequired+'" maxlength="50" placeholder="'+fieldPlaceholderName+star+'" /></div>';
} else
{
//если кастомный тайтл НЕ пустой
//то просто подменяем placeholder
formHTML+='<div class="customFormFieldBody"><input type="text" name="name" class="form-control customFormFieldInputText'+classRequired+'" maxlength="50" placeholder="'+fieldPlaceholderName+'" /></div>';
}
} else
{
//если кастомный тайтл НЕ существует
//то просто подменяем placeholder
formHTML+='<div class="customFormFieldBody"><input type="text" name="name" class="form-control customFormFieldInputText'+classRequired+'" maxlength="50" placeholder="'+fieldPlaceholderName+'" /></div>';
}
} else
{
formHTML+='<div class="customFormFieldBody"><input type="text" name="name" class="form-control customFormFieldInputText'+classRequired+'" maxlength="50" placeholder="" /></div>';
}
} else
{
if (fieldTitleName!=undefined)
{
//если кастомный тайтл пустой, выводим стандартный placeholder с признаком обязательности заполнения
if (fieldTitleName=="")
{
formHTML+='<div class="customFormFieldBody"><input type="text" name="name" class="form-control customFormFieldInputText'+classRequired+'" maxlength="50" placeholder="Иван Иванович'+star+'" /></div>';
} else
{
//если кастомный тайтл НЕ пустой
//то просто выводим стандартный placeholder
formHTML+='<div class="customFormFieldBody"><input type="text" name="name" class="form-control customFormFieldInputText'+classRequired+'" maxlength="50" placeholder="Иван Иванович" /></div>';
}
} else
{
formHTML+='<div class="customFormFieldBody"><input type="text" name="name" class="form-control customFormFieldInputText'+classRequired+'" maxlength="50" placeholder="Иван Иванович" /></div>';
}
}
}
if (showPhone=="Y")
{
classRequired="";
star="";
if (needPhone=="Y")
{
classRequired=" customFormFieldRequired";
star=" *";
}
//Если существует параметр кастомного тайтла поля "Телефон"
if (fieldTitlePhone!=undefined)
{
//Если параметр кастомного тайтла поля "Телефон" НЕ пустой
if (fieldTitlePhone!="")
{
formHTML+='<div class="customFormFieldTitle">'+fieldTitlePhone+star+'</div>';
} else
{
//проверяем, указан ли кастомный placeholder
//Если параметр кастомного тайтла поля "Телефон" ПУСТОЙ и существует кастомный placeholder
if (fieldPlaceholderPhone!=undefined)
{
//Если кастомный placeholder ПУСТОЙ
//то выводим стандартный тайтл!
if (fieldPlaceholderPhone=="")
{
formHTML+='<div class="customFormFieldTitle">Ваш номер телефона'+star+'</div>';
}
}
}
} else
{
//Если НЕ существует параметр кастомного тайтла поля "Телефон"
formHTML+='<div class="customFormFieldTitle">Ваш номер телефона'+star+'</div>';
}
//Если существует кастомный placeholder поля "Телефон"
if (fieldPlaceholderPhone!=undefined)
{
//Если он НЕ пустой
if (fieldPlaceholderPhone!="")
{
//проверяем, существует ли кастомный тайтл
if (fieldTitlePhone!=undefined)
{
//если кастомный тайтл пустой, выводим кастомный placeholder с признаком обязательности заполнения
if (fieldTitlePhone=="")
{
formHTML+='<div class="customFormFieldBody"><input type="tel" name="phone" class="form-control customFormFieldInputText'+classRequired+'" maxlength="50" placeholder="'+fieldPlaceholderPhone+star+'" /></div>';
} else
{
//если кастомный тайтл НЕ пустой
//то просто подменяем placeholder
formHTML+='<div class="customFormFieldBody"><input type="tel" name="phone" class="form-control customFormFieldInputText'+classRequired+'" maxlength="50" placeholder="'+fieldPlaceholderPhone+'" /></div>';
}
} else
{
//если кастомный тайтл НЕ существует
//то просто подменяем placeholder
formHTML+='<div class="customFormFieldBody"><input type="tel" name="phone" class="form-control customFormFieldInputText'+classRequired+'" maxlength="50" placeholder="'+fieldPlaceholderPhone+'" /></div>';
}
} else
{
formHTML+='<div class="customFormFieldBody"><input type="tel" name="phone" class="form-control customFormFieldInputText'+classRequired+'" maxlength="50" placeholder="" /></div>';
}
} else
{
if (fieldTitlePhone!=undefined)
{
//если кастомный тайтл пустой, выводим стандартный placeholder с признаком обязательности заполнения
if (fieldTitlePhone=="")
{
formHTML+='<div class="customFormFieldBody"><input type="tel" name="phone" class="form-control customFormFieldInputText'+classRequired+'" maxlength="50" placeholder="Ваш номер телефона'+star+'" /></div>';
} else
{
//если кастомный тайтл НЕ пустой
//то просто выводим стандартный placeholder
formHTML+='<div class="customFormFieldBody"><input type="tel" name="phone" class="form-control customFormFieldInputText'+classRequired+'" maxlength="50" placeholder="Ваш номер телефона" /></div>';
}
} else
{
formHTML+='<div class="customFormFieldBody"><input type="tel" name="phone" class="form-control customFormFieldInputText'+classRequired+'" maxlength="50" placeholder="Ваш номер телефона" /></div>';
}
}
}
if (showMail=="Y")
{
classRequired="";
star="";
if (needMail=="Y")
{
classRequired=" customFormFieldRequired";
star=" *";
}
//Если существует параметр кастомного тайтла поля "E-mail"
if (fieldTitleEmail!=undefined)
{
//Если параметр кастомного тайтла поля "E-mail" НЕ пустой
if (fieldTitleEmail!="")
{
formHTML+='<div class="customFormFieldTitle">'+fieldTitleEmail+star+'</div>';
} else
{
//проверяем, указан ли кастомный placeholder
//Если параметр кастомного тайтла поля "E-mail" ПУСТОЙ и существует кастомный placeholder
if (fieldPlaceholderEmail!=undefined)
{
//Если кастомный placeholder ПУСТОЙ
//то выводим стандартный тайтл!
if (fieldPlaceholderEmail=="")
{
formHTML+='<div class="customFormFieldTitle">Введите Ваш E-MAIL'+star+'</div>';
}
}
}
} else
{
//Если НЕ существует параметр кастомного тайтла поля "E-mail"
formHTML+='<div class="customFormFieldTitle">Введите Ваш E-MAIL'+star+'</div>';
}
//Если существует кастомный placeholder поля "E-mail"
if (fieldPlaceholderEmail!=undefined)
{
//Если он НЕ пустой
if (fieldPlaceholderEmail!="")
{
//проверяем, существует ли кастомный тайтл
if (fieldTitleEmail!=undefined)
{
//если кастомный тайтл пустой, выводим кастомный placeholder с признаком обязательности заполнения
if (fieldTitleEmail=="")
{
formHTML+='<div class="customFormFieldBody"><input type="email" name="email" class="form-control customFormFieldInputText'+classRequired+'" maxlength="50" placeholder="'+fieldPlaceholderEmail+star+'" /></div>';
} else
{
//если кастомный тайтл НЕ пустой
//то просто подменяем placeholder
formHTML+='<div class="customFormFieldBody"><input type="email" name="email" class="form-control customFormFieldInputText'+classRequired+'" maxlength="50" placeholder="'+fieldPlaceholderEmail+'" /></div>';
}
} else
{
//если кастомный тайтл НЕ существует
//то просто подменяем placeholder
formHTML+='<div class="customFormFieldBody"><input type="email" name="email" class="form-control customFormFieldInputText'+classRequired+'" maxlength="50" placeholder="'+fieldPlaceholderEmail+'" /></div>';
}
} else
{
formHTML+='<div class="customFormFieldBody"><input type="email" name="email" class="form-control customFormFieldInputText'+classRequired+'" maxlength="50" placeholder="" /></div>';
}
} else
{
if (fieldTitleEmail!=undefined)
{
//если кастомный тайтл пустой, выводим стандартный placeholder с признаком обязательности заполнения
if (fieldTitleEmail=="")
{
formHTML+='<div class="customFormFieldBody"><input type="email" name="email" class="form-control customFormFieldInputText'+classRequired+'" maxlength="50" placeholder="ivan.ivanovich@mail.ru'+star+'" /></div>';
} else
{
//если кастомный тайтл НЕ пустой
//то просто выводим стандартный placeholder
formHTML+='<div class="customFormFieldBody"><input type="email" name="email" class="form-control customFormFieldInputText'+classRequired+'" maxlength="50" placeholder="ivan.ivanovich@mail.ru" /></div>';
}
} else
{
formHTML+='<div class="customFormFieldBody"><input type="email" name="email" class="form-control customFormFieldInputText'+classRequired+'" maxlength="50" placeholder="ivan.ivanovich@mail.ru" /></div>';
}
}
}
if (showTextarea=="Y")
{
classRequired="";
star="";
if (needTextarea=="Y")
{
classRequired=" customFormFieldRequired";
star=" *";
}
if (customTextareaTitle!="")
{
formHTML+='<div class="customFormFieldTitle">'+customTextareaTitle+star+'</div>';
}
if (customTextareaPlaceholder!="")
{
customTextareaTitle=customTextareaPlaceholder;
}
formHTML+='<div class="customFormFieldBody"><textarea name="textarea" class="form-control textareaField customFormFieldInputText'+classRequired+'" maxlength="1000" placeholder="'+customTextareaPlaceholder+star+'"></textarea><input type="hidden" name="textarea_title" value="'+customTextareaTitle+'" /></div>';
}
formHTML+='</div><input type="hidden" name="site" value="'+location.href+'" /><input type="hidden" name="referrer" value="'+document.referrer+'" /><input type="hidden" name="form_code" value="'+formCode+'" />';
if (metrikaCounter && metrikaTargetTry && metrikaTargetSuccess)
{
formHTML+='<input type="hidden" class="metrikaCounter" value="'+metrikaCounter+'" /><input type="hidden" class="metrikaTargetTry" value="'+metrikaTargetTry+'" /><input type="hidden" class="metrikaTargetSuccess" value="'+metrikaTargetSuccess+'" />';
}
if (gaTargetTry && gaTargetSuccess)
{
formHTML+='<input type="hidden" class="gaTargetTry" value="'+gaTargetTry+'" /><input type="hidden" class="gaTargetSuccess" value="'+gaTargetSuccess+'" />';
}
if (notPostToFO!=undefined)
{
formHTML+='<input type="hidden" name="notPostToFO" value="'+notPostToFO+'" />';
}
if (redirectURL)
{
formHTML+='<input type="hidden" class="redirectURL" value="'+redirectURL+'" />';
}
if (serviceFormName)
{
formHTML+='<input type="hidden" name="serviceFormName" value="'+serviceFormName+'" />';
}
formHTML+='<textarea name="hiddenAnyText" class="hiddenAnyText"></textarea>';
if (parentContainer=="body" && formCode!="new_otzyv")
{
formHTML+='\
<div class="cheker">\
<input type="checkbox" name="cheker" /><span> Я согласен на обработку моих персональных данных </span>\
</div>';
formHTML+='<div class="third_faces">Ваши персональные данные не будут переданы третьим лицам. Мы заботимся о Вас и Ваших данных!</div>';
}
if (bntText)
{
formHTML+='<div class="form-btn-block"><input class="customFormSubmitBtn btn" type="submit" value="'+bntText+'" /></form></div></div></div>';
} else
{
formHTML+='<div class="form-btn-block"><input class="customFormSubmitBtn btn" type="submit" value=" Отправить " /></form></div></div></div>';
}
if (parentContainer=="body")
{
formHTML+='</div>';
$.magnificPopup.open({
tClose: 'Закрыть (Esc)',
tLoading: 'Загрузка...',
items: {
src: '<div class="white-popup white-popup-block zoom-anim-dialog">'+formHTML+'</div>',
},
type: 'inline',
preloader: true,
modal: false,
removalDelay: 300,
closeOnBgClick:false,
mainClass: 'my-mfp-zoom-in',
midClick: true,
callbacks: {
open: function() {
$("#customFormPopupContainer input[name='phone']").mask("+9 (999) 999-9999");
if (IS_GADGET)
{
document.location.hash='popup';
observerCloseMagnificPopup();
$.magnificPopup.instance.close = function () {
removeHashForPopups();
$.magnificPopup.proto.close.call(this);
};
}
if (typeof customFormInitCallback == 'function') { customFormInitCallback($("#customFormPopupContainer"),formCode); }
}
}
});
} else
{
parentContainer.html(formHTML);
parentContainer.find("input[name='phone']").mask("+9 (999) 999-9999");
if (typeof customFormInitCallback == 'function') { customFormInitCallback(parentContainer,formCode); }
}
}
/*Инициализация формы --- конец*/
/*
Использовать данную функцию для дополнительных действий с формами после их инициализации,
code - это код формы (например, data-form-code="55")
function customFormInitCallback(obj,code) {
switch (code) {
case 55:
obj.find('.customFormFields').append('<div class="customFormFieldBody"><input type="text" id="form_mk_time" class="form-control customFormFieldInputText" placeholder="Удобное время звонка"></div>');
break;
}
}
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment