fantazer
7/8/2016 - 11:00 AM

VALIDATE

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));
	}
?>