Ошибка, которую вы допустили, состоит в том, что ваш селектор в команде .each
использует .placement-form
- который ищет любой элемент с class position-form ... вы создаете элементы с id формы размещения (x).
Я бы предложил добавить класс к каждой вновь создаваемой форме (поскольку идентификаторы должны быть уникальными, но классы не имеют такого требования).
var formCopy = $("#placement-form").clone().addClass('placement-form');
или просто убедитесь, что оригинал имеет этот класс:
<form action="" id="placement-form" class="placement-form">
Тогда ваш .each
должен работать как есть.
Другим вариантом является использование селектора запуска-с , но я бы посчитал это худшим вариантом, так как он будет медленнее:
$('[id^="placement-form"]').each(...)
Вышеприведенный поиск ищет любой элемент, идентификатор которого начинается с placement-form
.
Редактировать: Вот несколько советов, как заставить работать getPlacement
функцию
1) Измените диапазон с идентификатором placement_span
на класс. В конечном итоге вы получите множество из них, и, как указывалось ранее, идентификаторы должны быть уникальными. Это также поможет вам в поиске нужного при цикле по всем placement_form
х
2) Удалите return false
, так как это останавливает .each
в первой соответствующей форме (то есть работает только первая)
3) Измените getPlacement
, чтобы использовать jQuery, особенно предоставляя второй параметр селектору, чтобы сузить поиск до текущей формы. Вот некоторый рабочий код:
$('.placement-form').each(function(){
var $form = $(this);
var site, placement_desc, placementtype, size, pricing, servetype;
site = $(".site",$form).val()
placement_desc = $(".placementdesc",$form).val();
placementtype = $(".placementtype",$form).val();
size = $(".size",$form).val();
pricing = $(".pricing",$form).val();
servetype = $(".servetype",$form).val()
$(".placement_span",$form).html('<br />'+site+'_'+placement_desc+'_'+placementtype+'_'+size+'_'+pricing+'_'+servetype);
});
}
Живой пример: http://jsfiddle.net/zu8ZJ/