Добавление блоков из шаблона с уникальными именами
Появилась задача создать некое описание при этом использовать для этого добавление блоков из шаблонов (текст, фото и т.д.) в которых уже вводить в разрешенные места данные
блок с кнопкой и позицией для добавления <div id="post_list"></div><a href="javascript:;" class="add_post_list" list="text">Добавить текстовый блок</a> обработка на jquery
$(document).ready(function(){
// функция генерации числа
function getrandom(min_random, max_random) {
var range = max_random - min_random + 1;
return Math.floor(Math.random()*range) + min_random;
}
// елемент в который добавляем
var post_list = $('#post_list');
var newid = '';
// шаблон добавляемого блока
var block_post_text = '<label>Описание</label><br /><textarea name="opisanie_text_'+newid+'" rows="5" ></textarea>';
// вызов события при нажатии
$('.add_post_list').click(function(){
newid = getrandom(10,1000);
post_list.append('<div class="post_' + newid + '"></div>');
if($(this).attr('list')=='text'){
$('.post_'+newid).append('text').append(block_post_text);
}
});
});
но у меня в добавляемых блоках одинаковые имена :( помогите пожалуйста доработать |
wcb-falcon,
Вместо генерации случайного номера , используте счётчик. var newid = 1; ... newid++; |
что с генерацией что с простым увеличение сработало только в том случае когда переменную с шаблоном block_post_text перенес внутрь обработчика $('.add_post_list').click
вопрос в исходном варианте смог решить путем внесения шаблона в функцию
function block_post_text(newid){
return '<label>Описание</label><br /><textarea name="opisanie_text_'+newid+'" rows="5" ></textarea>';
}
а строку $('.post_'+newid).append('text').append(block_post _text); заменил на $('.post_'+newid).append('text').append(block_post _text(newid)); пока на данный момент это устраивает. Если есть какой либо более гуманный способ то расскажите. |
| Часовой пояс GMT +3, время: 05:05. |