Я предполагаю, что ваша комбо будет идентифицирована как ".valueCount" и что количество элементов по умолчанию равно единице, которую можно найти в ".field".Общий контейнер всего этого идентифицируется как «fieldgroup»
Ваше первое поле должно иметь имя, установленное на что-то вроде dynamicfield[]
.Замените «dynamicfield» тем, что вы хотите.
Затем используйте jQuery, чтобы создать прототип для вашего первого поля:
var $prototype = $(".field").clone();
Обратите внимание, что .field
может быть общей оболочкой самого поля.
Теперь создайте обработчик событий для вашей комбинации:
$(".valueCount").change(function(){
var count = $(this).val(), $fields = $(this).closest("fieldgroup").find(".field");
if ($fields.size() > count)
//remove fields
$fields.slice(count).remove();
else if ($fields.size() < count) {
//add fields
for (var i = count - $fields.size() ; i ; i--)
$prototype.clone().insertAfter($fields.last());
}
});
На стороне сервера вы будете иметь все значения в одном массиве $ _REQUEST ['dynamicfield'];
Сделайте любую понравившуюся вам проверку.