Задать вопрос

Как с помощью jQuery при клике на ссылке создать копию блока?

у меня есть div с инпутом, который позволяет загрузить файл.
ниже идет ссылка. при клике на ссылку должен дублироваться (или создаваться с нуля?) новый блок с классом load-file, но при этом инпут внутри каждого последующего нового блока должен быть уникальным (например чтобы name был file1, file2 и тд)
новые блоки должны создаваться друг под другом (то есть не под ссылкой)

<div class="load-file">
<label>Загрузить файл <input type="file" name="file1"/></label>
</div>

<a href="#" class="load-more">Загрузить еще файл</a>


подскажите, пожалуйста, как это реализовать с помощью jquery?
  • Вопрос задан
  • 666 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 2
@mib
Можно обойтись без ссылки "загрузить еще"
Во-первых использовать
<input type="file" name="file_arr[]"/>
 - это позволит не заморачиваться генерацией имен файлов - будет массив из загружаемых файлов

Eще - хтмл5 позволяет использовать
<input type="file" name="file_arr[]" multiple /> 
- можно выбрать сразу несколько файлов через шифт, или через контрол

если хтмл5 вариант не устраивает - можно сделать так:
prepare_event();

function prepare_event()
{
	$('input[type="file"]').unbind();
	$('input[type="file"]').change(function()
	{
		 //здесь клонирование тега
		//<label>Загрузить файл <input type="file" name="file_arr[]"/></label>
		//но после этого нужно сделать 
		prepare_event(); 
		//чтобы новый инпут тоже перехватывался
		//это не готовое решение, а скорее велосипед, но вполне работоспособный
	});
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы