Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проблема с выводом ошибок в форме (https://javascript.ru/forum/misc/34027-problema-s-vyvodom-oshibok-v-forme.html)

Perumov 18.12.2012 13:25

Проблема с выводом ошибок в форме
 
Здравствуйте уважаемое сообщество.
Столкнулся с проблемой и ни как не могу найти решение, уже несколько дней все интернеты обыскиваю:help:
Суть в том, что ни как не могу разобраться каким образом реализовать изменение цвета фона формы отправки данных, если поля формы были заполнены некорректно или отправляются в обработчик с нулевыми данными. То есть как выводить ошибку в виде измененного цвета фона того или иного поля в зависимости, где произошла ошибка, а при клике на поле, оно возвращалось к первоначальному виду? А то alert'ом выводить как-то не очень:no:
Заранее благодарен.
Вот функция отправки данных на сервер. (я попытался с помощью return вернуть вместо alert присоединенный класс, который меняет цвет фона у текстового поля, но это не работает так как мне нужно).
function sendData()
	{
		commentForm.find('button').hide().next().show();
		sendDataComment.docid = commentForm.find("#login").val();
		$.post(
			"savecomment.php",
			sendDataComment,
			function(data){
				if(data)
				{
					data = $.parseJSON(data);
					var errors ='';
					$.each(data, function(i, val) {
						errors += val+'\n';
						
					});
					//return ("textarea").addClass('error-data');
					commentForm.find('button').show().next().hide();
					//alert(errors);
					
				}
				else 
					formToComment(); 
			}
		)

Perumov 18.12.2012 23:59

Неужели нет знающих людей, которые разбираются в вопросе?

pikko 19.12.2012 02:59

Из приведенного кода неясно что именно возвращает сервер и можно ли это использовать для идентификации полей формы.
И в общем случае, корректность заполнения полей лучше проверять до отправки серверу.

ОлегА 19.12.2012 10:11

function sendData()
	{ 
        var ret = {'result' : true};
		commentForm.find('button').hide().next().show();
		sendDataComment.docid = commentForm.find("#login").val();
		$.post(
			"savecomment.php",
			sendDataComment,
			function(data){
				if(data)
				{
					data = $.parseJSON(data);
					var errors ='';
					$.each(data, function(i, val) {
						errors += val+'\n';
						
					});
                                        
                    if(errors)
                         ret['result'] = false;

					//return ("textarea").addClass('error-data');
					commentForm.find('button').show().next().hide();
					//alert(errors);
					
				}
				else 
					formToComment(); 
			}
		)

return  ret['result'];
}

if(! sendData()){
/*  ошибки в каких то полях */
}

Perumov 19.12.2012 11:54

Ребята, спасибо, что откликнулись. В "i" каждого цикла содержится имя поля, в котором возникла ошибка - author и comment
Вот так данные отправляются с этих полей, функция первоочередная перед той, которою я показал в первом топике
$('#newComment button').live('click',function(){
		sendDataComment.author = commentForm.find("input[name='name']").val();
		sendDataComment.comment = commentForm.find("textarea").val();
		sendData();
	});

Проблема в том, чтобы присоединить к этим полям дополнительный класс CSS, который будет изменять у них фоновый цвет в случае отправки на сервер пустых значений.

Perumov 20.12.2012 20:15

Уважаемые профи, помогите, пожалуйста, разобраться...:help:

ОлегА 20.12.2012 20:40

излагай вопрос то


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