Добовление формы еще
Сейчас работаю над функцией добовления формы еще, тоесть например за один раз нужно создать 10 пользователей, если форм мало то админ нажимает знак + и внизу добовляется еще к примеру 10 форм.
Ниже привожу мой код. Скрипт еще недоделанный, но уже сейчас работает не так как надо. Проблема в нумерации, каждая форма имеет порядковый номер. При создании новых форм нужную нумерацию имеет только последняя форма. Конкретно при загрузке имеется 2 формы с номерами 1,2 При добовлении еще форм нумерация такая 1,2,2,4, а при добовлении еще 2х форм такая: 122226
// Добовление формы еще
// Кнопка
var more_form = $('.more_item');
// Колличество форм уже существующих - номера форм
var n = 2;
// Заносим в переменную форму для клонирования
var item_form = $('.question_item:last');
var html_form = item_form.html();
// Функция при клике на кнопку добовления форм еще
more_form.click(function(){
// В цикле добовляем еще 2 формы
for(var i = 1; i <= 2; i++) {
// Добовляем форму в конец
item_form.after(html_form);
// Увеличиваем номер
n++;
// Заносим в переменную номер последней созданной формы
var num = $('.number_question:last');
// Заменяем номер формы на увеличенный
num.text(n);
}
});
Пожалуйста подскажите в чем проблема(( |
Цитата:
Вообще было бы здорово, если бы ты показал html, до и после клонирования. По делу. ты клонируешь первые формы Вставляешь тоже после первых. А нумируешь почему-то самую последнюю, а не те которые вставил. |
// Добовление формы еще
// Кнопка
var more_form = $('.more_item');
// Колличество форм уже существующих - номера форм
var n = 2;
// То что нужно заменить в форме чтоб она отсылала нужные пост данные
var regN_g = /<span class="number_question">2/g;
var regN_i = /TestQuestion\[2\]/g;
// Функция при клике на кнопку добовления форм еще
more_form.click(function(){
// В цикле добовляем еще 2 формы
for(var i = 1; i <= 2; i++) {
// Заносим в переменную форму для клонирования
var item_form = $('.question_item:last');
var html_form = item_form.html();
n++;
// Формеруем замену
namb = '<span class="number_question">' + n;
form_i = 'TestQuestion[' + n + ']';
// Заменяем
html_form = html_form.replace(regN_i,form_i);
html_form = html_form.replace(regN_g,namb);
// Добовляем форму в конец
more_form.before(html_form);
}
});
Вот переделанный и доделанный код, тут я пошол другим путем, путем регулярных выражений типа: html_form = html_form.replace(regN_g,namb); И формы добовлял не после всех форм, а перед элементом "Добавить еще форм". Все работает, всем спасибо)) |
| Часовой пояс GMT +3, время: 14:37. |