Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Проверка формы перед отправкой (https://javascript.ru/forum/jquery/56588-proverka-formy-pered-otpravkojj.html)

Eliot456 24.06.2015 08:35

Проверка формы перед отправкой
 
Добрый день. Подскажите как дописать скрипт отправки данных на сервер, чтобы если данные не заполнены возвращалась ошибка и форма не отправлялась
$(document).ready(function(){
    $("#callback").submit(function() {
		$.ajax({
		type: "GET",
		url: "mail.php",
		data: $("#callback").serialize()
	}).done(function() {
		alert("Спасибо за заявку!");
		$('#callback').css({"display":"none"});
		$('.done').css({"display":"block"})
	})
	return false;
});
})

ksa 24.06.2015 08:37

Цитата:

Сообщение от Eliot456
как дописать скрипт отправки данных на сервер, чтобы если данные не заполнены возвращалась ошибка и форма не отправлялась

Пройдись по полям формы... Проверь их значения... Найдешь пустые - не отправляй форму.

Eliot456 24.06.2015 08:57

Более менее вроде разобрался. Вот
$("#callback").submit(function() {
					var form = $(this);
					var error = false; 
					form.find('input, textarea').each( function(){ 
						if ($(this).val() == '') {
							alert('Заполните поле "'+$(this).attr('placeholder')+'"!');
							error = true; 
						}
					});
					if (!error) {
					$.ajax({
						type: "GET",
						url: "mail.php",
						data: $("#callback").serialize()
					}).done(function() {
						alert("Спасибо за заявку!");
						$('#callback').css({"display":"none"});
						$('.done').css({"display":"block"})
					})
					return false;
					}
				});

Eliot456 24.06.2015 09:24

Я в общем сделал вот так
$("#callback").submit(function() {
					var form = $(this);
					var error = false; 
					var name = $("#name").val();
					var kontakt = $("#phone").val();
						if(name.length < 1){
							$('#name').addClass('error');
							error = true;
						}
						if(kontakt.length < 1){
							$('#phone').addClass('error');
							error = true;
						}
						$('#name, #phone').focus(function(){
							$(this).removeClass();
						})
					if (!error) {
					$.ajax({
						type: "GET",
						url: "mail.php",
						data: $("#callback").serialize()
					}).done(function() {
						alert("Спасибо за заявку!");
						$('#callback').css({"display":"none"});
						$('.done').css({"display":"block"})
					})
					return false;
					}
				});

но иногда при отправке формы с пустыми полями страница моргает и стили error появляются лишь на миг и пропадают, как поправить?


Часовой пояс GMT +3, время: 19:56.