Вывод имени незаполненого поля
Добрый вечер.
Такая проблема появилась. Если, допустим, так прописать:
<form action="" method="post" id="contact">
<p>
<label for="name">Имя</label>
<input type="text" name="name" id="name"><span></span>
</p>
</form>
то js:
$('#contact').submit(function(){
var errors = false;
$(this).find('div').empty();
$(this).find('input, textarea').each(function(){
if( $.trim( $(this).val() ) == '' ) {
errors = true;
$(this).next().text( 'Не заполнено поле ' + $(this).prev().text() );
}
});
if( !errors ){
var data = $('#contact').serialize();
$.ajax({
url: 'index.php',
type: 'POST',
data: data,
beforeSend: function(){
$('#submit').next().text('Отправляю...');
},
success: function(res){
if( res == 1 ){
$('#contact').find('input:not(#submit), textarea').val('');
$('#submit').next().empty();
alert('Письмо отправлено');
}else{
$('#submit').next().empty();
alert('Ошибка отправки');
}
},
error: function(){
alert('Ошибка!');
}
});
}
}
выводит имя поля, если его не заполнишь, а если так:
<form action="" method="post" id="contact">
<tr>
<td>Введите ваше имя <strong style="color:red;">*</strong></td>
<td><input type="text" name="name" id="name">
<div class="formaobr"></div></td>
</tr>
</form>
то ошибка без имени, то есть - 'Не заполнено поле'.
Что здесь не так?
Обновление
На сайте том выходит ошибка, когда нажимаю отправить у формы. В общем, нужно так: когда поля не заполнены, писало Не заполнено поле Имя... и т.д., а сейчас скрипт выдает только - Не заполнено поле, а какое именно, не указывает. Для такой формы нужно:
<form action="" method="post" id="contact">
<tr>
<td>Введите ваше имя <strong style="color:red;">*</strong></td>
<td><input type="text" name="name" id="name">
<div class="formaobr"></div></td>
</tr>
</form>
Источник: Stack Overflow на русском