Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Проверка данных формы с элем. ajax (https://javascript.ru/forum/jquery/39387-proverka-dannykh-formy-s-ehlem-ajax.html)

jeysmook 27.06.2013 19:41

Помогите дописать метод
 
Вот функция, которая проверяет, в ней есть элемент ajax, и там небольшая проблема, по мере просмотра кода видно, что за проблема, спасибо.
function checkFormData(objForm) {
	var sendResult = true;
	$(objForm).find('input').not('.submit').each(function() {
		var inpValue = $(this).val();
		if(inpValue == '') {
			$(this).css('border','1px solid #f96060');
			sendResult = false;
		} else {
			switch($(this).attr('name')) {
				case 'mail' :
					//Если не проходит проверку, то sendResult = false;
				case 'phone' :
					//Если не проходит проверку, то sendResult = false;
				case 'pass' : 
					//Если не проходит проверку, то sendResult = false;
				case 'captcha' :
					$.post('./codes/captcha/check.php', {captcha: inpValue,}, function(data) {
						alert(sendResult);
						if(data == 1) {
							$(objForm).find('input[name=captcha]').css('border','1px solid #7cd584');
						} else {
							$(objForm).find('input[name=captcha]').css('border','1px solid #f96060');
							sendResult = false; //Вот тут проблема, функция полность выполинась, а ajax только начал работать,
							// как сделать так чтобы код работал корректно
						}
					});
				default :
					$(this).css('border','1px solid #7cd584');
			}			
		}
	});
	return sendResult;
}

Вот так вызываю функцию.
<form onsubmit="return checkFormData(this);"></form>

bes 27.06.2013 21:45

Цитата:

Сообщение от jeysmook
по мере просмотра кода видно, что за проблема

ни х-ра не вижу, какой код выполнился, а ajax только начал работать?

jeysmook 28.06.2013 11:52

bes,
Функция checkFormData выполнилась, а ajax начал работать после того как полностью выполнилась функция, и по этому проверка полей осуществляется не корректно.

bes 28.06.2013 20:46

jeysmook, не про эту тему речь?
http://javascript.ru/forum/ajax/3938...-rezultat.html


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