@ElenaTih

PHP mailer отправляет сообщения не прошедшие валидацию, что добавить?

Я сверстала свой сайт по учебному курсу с готовыми скриптами js , php. Форма php mailer отрабатывает отправку сообщения, но отправляет все сообщения, в том числе НЕ прошедшие валидацию. Валидация в js есть, там выделяет красным строки, если они неправильно заполнены.
function validateForms(form){
$(form).validate({
rules: {
name: {
required: true,
minlength: 2
},
phone: "required",
email: {
required: true,
email: true
}
},
messages: {
name: {
required: "Пожалуйста, введите свое имя",
minlength: jQuery.validator.format("Введите {0} символа!")
},
phone: "Пожалуйста, введите свой номер телефона",
email: {
required: "Пожалуйста, введите свою почту",
email: "Неправильно введен адрес почты"
}
}
});
}

validateForms('#consultation-form');
validateForms('#consultation form');
validateForms('#order form');

$('input[name=phone]').mask("+7 (999) 999-99-99");

Но вот отправка сообщения есть, если нажать Отправить. Что нужно дописать в js может, какое условие, чтобы сообщения из формы Не прошедшие валидацию не отправлялись? Сейчас function validateForms(form) { есть }, далее вроде нет свойства где прописано отправлять только валидированные формы: $('form').submit(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: "mailer/smart.php",
data: $(this).serialize()
}).done(function() {
$(this).find("input").val("");
$('#consultation, #order').fadeOut();
$('.overlay, #thanks').fadeIn('slow');

$('form').trigger('reset');
});
return false;
});

И еще вопрос по капче: если поставить готовую гугл капчу, надо в js прописывать тоже как-то валидацию?
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 1
nastya97core
@nastya97core
Начинающий программист
Тебе нужно сделать проверку на валидацию:
$('form').submit(function(e) {
if (валидация === успех) {
$.ajax({
type: "POST",
url: "mailer/smart.php",
... 
} else {
появление ошибки, если валидация не пройдена
}
}


я просто не знаю, как ты понимаешь, пройдена ли валидация или нет. Наверное validateForms('#order form'); должно что-то возвращать. Попробуй после $('form').submit(function(e) { написать console.log(validateForms('#order form'););
и проверь логи. Возможно там что-то есть
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы