Skip to content

Instantly share code, notes, and snippets.

@theStrangeAdventurer
Created December 12, 2017 07:45
Show Gist options
  • Save theStrangeAdventurer/0836c7e1d2b5e43b76617763edb45ae8 to your computer and use it in GitHub Desktop.
Save theStrangeAdventurer/0836c7e1d2b5e43b76617763edb45ae8 to your computer and use it in GitHub Desktop.
Настройка jquery validate/ одно из двух полей + мобильный телефон (Россия)
$(document).ready(function () {
var phoneInput = $('#cnPhone');
phoneInput.mask('+7(000)-000-0000');
phoneInput.on('focus', function () {
$(this).val('+7(');
});
jQuery.validator.addMethod('mobileRu', function () {
var phRe = /^\+7\(([0-9]{3})\)\-([0-9]{3})\-([0-9]{4})$/;
return phoneInput.val().match(phRe);
}, 'Введите корректный номер телефона');
jQuery.validator.addMethod("messages", function(value, element) {
return this.optional(element) || /^[a-z0-9\-\s]+$/i.test(value);
}, "Сообщение должно содержать только буквы, цифры или пробелы");
jQuery.extend(jQuery.validator.messages, {
maxlength: jQuery.validator.format("Поле доле должно содержать не более {0} символов."),
minlength: jQuery.validator.format("Поле должно содержать как минимум {0} символов."),
required: "Это поле обязательно для заполнения",
email: "Пожалуйста, введите корректный e-mail адрес",
lettersonly: "Поле должно содержать только буквы"
});
$(document).on('blur', '#contactForm input[type=text], #contactForm input[type=tel], #contactForm input[type=email]', function () {
if ($(this).hasClass('valid')) return;
$(this).val('');
});
var form = $('#contactForm');
form.validate({
rules : {
cnPhone: {
required: function(element) {
var result = false;
phoneInput.removeClass('mobileRu');
if ($("#cnEmail").val() == '') {
result = true;
if (!phoneInput.hasClass('mobileRu')) {
phoneInput.addClass('mobileRu');
}
}
return result;
}
},
cnEmail: {
required: function(element) {
var result = false;
if ($("#cnPhone").val() == '') {
result = true;
}
return result;
}
}
},
messages: {
cnPhone : {
required : 'Введите одно из полей: ваш телефон или e-mail'
},
cnEmail : {
required : 'Введите одно из полей: ваш e-mail или телефон'
}
}
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment