VALIDATE
// FORM validate
$.validator.addMethod("wordCount",
function (value, element, params) {
var count = getWordCount(value);
if (count >= params[0]) {
return true;
}
},
jQuery.validator.format("A minimum of {0} words is required here.")
);
$.validator.addMethod('fnType', function (value, element) {
return value.match(/^[+-]?\d+$/);
}, 'Введите правильный телефон');
var validateConfig = {
"name": {
required: true,
minlength: 5,
wordCount: ['3'],
messages: {
required: 'Обязательно для заполнения',
minlength: 'Имя должно быть не меньше 5 символов',
wordCount: "Необходимо: Фамилия Имя и Отчество"
},
},
"simpleText": {
required: true,
minlength: 5,
messages: {
required: 'Обязательно для заполнения',
minlength: 'Текст должен быть длиннее',
},
},
"email": {
required: true,
email:true,
messages: {
required: 'Это поле обязательно для заполнения',
email: 'Введите правильный адресс'
},
},
"phone": {
required: true,
minlength: 5,
messages: {
required: 'Обязательное поле',
number: 'Введите правильный номер',
minlength: 'Номер должен быть длиннее',
},
},
"age": {
required: true,
minlength: 2,
number:true,
messages: {
required: 'Обязательное поле',
number: 'Не правильный возраст',
minlength: 'Номер должен быть длиннее',
},
}
}
$('.js-validate').each(function () {
var currentForm = $(this);
$(this).validate({
highlight: function (element) { //даем родителю класс если есть ошибка
$(element).parent().addClass("field-error");
},
unhighlight: function (element) {
$(element).parent().removeClass("field-error");
},
rules: {
agree: {
required: true
}
},
messages: {
agree: {
required: false
}
},
submitHandler: function () {
var currentSendData = '';
currentForm.each(function(){
$(this).find(".js-input-data").each(function(){
currentSendData = currentSendData + "&"+$(this).data('condition')+"="+$(this).val()
})
})
$.ajax({
type: "POST",
url: "mail.php",
data: currentSendData.slice(1),
success: function (data) {
closeModal();
initModal("next");
setTimeout(function () {
closeModal();
$(':input', '.validate-form') //очитска формы от данных
.not(':button, :submit, :reset, :hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected')
}, 2500)
}
});
}
})
$(this).find(".input").each(function () {
$(this).rules("add", validateConfig[$(this).data("type")]);
});
});
// FORM validate === end
form(action="javascript:void(null);").js-validate
.type--w700.type--lg.mb-24 Оставьте вашу заявку
.g.g-2.gap-24.mb-24
.input-row
input(
class="input js-input-data"
type="text"
name="name[1]"
placeholder="Ваше Ф.И.O"
data-type="name"
data-condition="name"
)
.input-row
input(
class="input js-input-data"
type="text"
name="phone[1]"
placeholder="Ваш телефон"
data-type="phone"
data-condition="phone"
)
.g.g-1.mb-24
.input-row
textarea(
class="input js-input-data"
type="text"
name="simpleText[1]"
cols="30"
rows="5"
data-condition="msg"
data-type="simpleText"
placeholder="Ваше сообщение"
).input
.login-remember.mb-48
.check-el
label.style-label.style-label--checkbox
input(type="checkbox" name="agree").style-input
.style-input-element
+icon("checked","icon")
.style-input-text Я ознакомился с #[a(href="#") политикой конфиденциальности], #[a(href="#") публичной офертой] и даю согласие на обработку моих персональных данных
button(type="submit").btn--md.btn--light.sm__w100 Отправить заявку
<?
if (isset($_POST['name'])) {
function clearData($data)
{
return trim(htmlspecialchars($data));
}
$formData = array_map('clearData', $_POST);
$to = 'kuznecovs45@gmail.com';
$subject = 'Информация';
$body = "Заявка от студентов:<br><br>";
foreach ($formData as $key => $value) {
$body = $body . $key . ": <strong>" . $value . "</strong><br>";
}
/* $body = ′=?koi8-r?B?′.base64_encode(convert_cyr_string($body, "w","k")).′?=′;*/
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/html; charset=utf-8";
$headers[] = "Subject: {$subject}";
$headers[] = "From: order@itexpert.ru";
$headers[] = "X-Mailer: PHP/" . phpversion();
mail($to, $subject, $body, implode("\r\n", $headers));
}
?>