I'm new in JQuery and I have a problem with dynamic forms. I would like to create a dynamic field, where a user will be able to create as many fields as he wants. Unfortunately, the options from the second field, generate after the first one is related to every dynamic field in the wrapper. How can I fix that?
Thank you in advance - I will be grateful for every answer!
<div class='input_fields_wrap'>
<button class='add_field_button'>Add more fields</button>
<div>
<label for='service'>Usługa</label>
<select name='service' class='service'>
<option value='Wybierz' selected>Wybierz</opiton>
<option value='Listy'>Listy</option>
<option value='Paczki'>Paczki</option>
</select>
<select name='type' class='type'></select>
</div>
<script>
$(document).ready(function() {
var listy = [
{display: 'A', value: 'A'},
{display: 'B', value: 'B'}];
var paczki = [
{display: 'C', value: 'C'},
{display: 'D', value: 'D'}];
var max_fields = 20;
var wrapper = $('.input_fields_wrap');
var add_button = $('.add_field_button');
var x = 1;
$(add_button).click(function(e){
e.preventDefault();
if(x<max_fields){
x++;
$(wrapper).append("<div><label for='service'>Usługa</label>" +
"<select name='service' class='service'>" +
"<option value='Wybierz' selected>Wybierz</option>" +
"<option value='Listy'>Listy</option>" +
"<option value='Paczki'>Paczki</option>" +
"</select><a href='#' class='remove_field'>Remove</a>" +
"<select name='type' class='type'></select>" +
"</div>");
}
});
$(wrapper).on('click', ".remove_field", function(e){
e.preventDefault();
$(this).parent('div').remove();
x--;
});
$('.service').change(function(e){
e.preventDefault();
var parent = $(this).val();
switch(parent){
case 'Listy':
list(listy);
break;
case 'Paczki':
list(paczki);
break;
}
});
function list(array_list){
$('.type').html("");
$(array_list).each(function(i){
$('.type').append("<option value="+array_list[i].value+">"+array_list[i].display+"</option>");
});
}
});