Привет!
Часто сайты идут с самописной валидацией полей у форм но без отправки писем.
Чтобы не лазить по этим настройкам, решил создать универсальный Ajax скрипт отправки форм на сайте, с проверкой всего 1 нужного поля на заполненность.
И вот что получилось:
Jsfiddle
HTML Код
<form>
<input type="hidden" name="Форма" value="Оставьте заявку!">
<input type="text" name="Имя">
<input type="text" id="phone" name="Телефон" required>
<button type="submit">Отправить</button>
</form>
JS код
$(document).ready(function() {
//E-mail Ajax Send
$("form").submit(function() { //Change
var th = $(this);
$.ajax({
type: "POST",
url: "mail.php", //Change
data: th.serialize()
}).done(function() {
alert("Thank you!");
setTimeout(function() {
// Done Functions
th.trigger("reset");
}, 1000);
});
return false;
});
});
Из плюсов - универсальная на все формы.
Минус - не видит input required (Ну или из-за самописной валидации на сайте)
Как можно в Ajax скрипте установить проверку поля phone ? И только если >0 то делать отправку.
Вот что у меня получилось, но почему-то просто страницу перезагружает, видимо ошибка получилась?:
$(document).ready(function() {
//E-mail Ajax Send
$("form").submit(function() {
var phone = $('#phone').val();
if(phone.length > 0) {
var th = $(this);
$.ajax({
type: "POST",
url: "mail.php",
data: th.serialize()
}).done(function() {
alert("Thank you!");
setTimeout(function() {
// Done Functions
th.trigger("reset");
}, 1000);
});
return false;
});
});
});
p.s. html валидация не срабатывает, нужно прямо в механизм отправки написать условие