Здравствуйте, подскажите как приучить код к нескольким формам на странице.
Обработчик:
$(document).ready(function(){
/* Следующий код выполняется только после загрузки DOM */
/* Данный флаг предотвращает отправку нескольких комментариев: */
var working = false;
/* Ловим событие отправки формы: */
$('#addCommentForm').submit(function(e){
e.preventDefault();
if(working) return false;
working = true;
$('#submit').val('Занято...');
$('span.error').remove();
/* Отправляем поля формы в comment.php: */
$.post('comment.php',$(this).serialize(),function(msg){
working = false;
$('#submit').val('Отправить');
if(msg.status){
/*
/ Если вставка была успешной, добавляем комментарий
/ ниже последнего на странице с эффектом slideDown
/*/
$(msg.html).hide().insertBefore('#addCommentContainer').slideDown();
$('#body').val('');
}
else {
/*
/ Если есть ошибки, проходим циклом по объекту
/ msg.errors и выводим их на страницу
/*/
$.each(msg.errors,function(k,v){
$('label[for='+k+']').append(''+v+'');
});
}
},'json');
});
});
Форма:
<div id="addCommentContainer">
<p>Добавить комментарий</p>
<form id="addCommentForm" method="post" action="">
<div>
<label for="name">Имя</label>
<input type="text" name="name" id="name" />
<label for="email">Email</label>
<input type="text" name="email" id="email" />
<label for="url">Вебсайт (не обязательно)</label>
<input type="text" name="url" id="url" />
<label for="body">Содержание комментария</label>
<textarea name="body" id="body" cols="20" rows="5"></textarea>
<input type="submit" id="submit" value="Отправить" />
</div>
</form>
</div>
Нужно чтобы было несколько таких форм на странице и обработчик мог работать с ними по отдельности. Т.е определял с какой формы именно отправлен post, обрабатывал данные и писал ответ. А в данный момент он работает только с одной.
Можно по идее поменять на id="addCommentForm" на class="addCommentForm" и привешать на каждую форму разный id... Но я не знаю, как потом его выловить через jquery. :(
Используй класс вместо id, тогда твой обработчик привяжется ко всем формам, а не первой найденной по id.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости