У меня есть простая форма, в которой я хочу, чтобы пользователь мог динамически добавлять входные данные,
Вот что я пробовал до сих пор.
Форма HTML выглядит следующим образом
HTML-код для вышеуказанной формы
<form>
<dvi class="container h-100">
<div class="d-flex justify-content-center">
<div class="card mt-5 col-md-12 animated bounceInDown myForm">
<div class="card-header">
<h4>Bidders Information</h4>
</div>
<div class="card-body">
<form>
<div id="dynamic_container">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text br-15"><i class="fa fa-tags"></i></span>
</div>
<input type="text" placeholder="Bidders Name" class="form-control" />
</div>
<div class="input-group mt-3" id="field">
<div class="input-group-prepend">
<span class="input-group-text br-15"><i class="fa fa-tags"></i></span>
</div>
<input type="text" placeholder="atribute name" id="field1" class="form-control" />
<input type="text" placeholder="atribute value" id="field2" class="form-control" />
<a class="btn btn-secondary btn-sm" id="add_more_input">
<i class="fa fa-minus-circle"></i> Add
</a>
</div>
</div>
</form>
</div>
<div class="card-footer">
<a class="btn btn-secondary btn-sm" id="add_more"><i class="fa fa-plus-circle"></i> Add</a>
<a class="btn btn-secondary btn-sm" id="remove_more"><i class="fa fa-trash-alt"></i> Remove</a>
<button class="btn btn-success btn-sm float-right submit_btn"><i class="fas fa-arrow-alt-circle-right"></i> Submit</button>
</div>
</div>
</div>
</dvi>
</div>
<div class="card-footer ml-auto mr-auto">
<button type="submit" class="btn btn-primary">{{ __('Add Page') }}</button>
</div>
</div>
</form>
Вот код jquery для динамического добавления ввода
var next = 1;
$("#add_more_input").click(function(e) {
e.preventDefault();
var addto = "#field" + next;
var addRemove = "#field" + (next);
next = next + 1;
var newIn = '<div class="input-group mt-3" id="field"><div class="input-group-prepend"><span class="input-group-text br-15"><i class="fa fa-tags"></i></span></div><input type="text" placeholder="atribute name" class="form-control" id="field' + next + '" name="field' + next + '"/> <input type="text" placeholder="atribute value" class="form-control" id="field' + next + '" name="field' + next + '"/></div> ';
var newInput = $(newIn);
var removeBtn = '<a id="remove' + (next - 1) + '" class="btn btn-secondary btn-sm remove-me add_more_input"><i class="fa fa-minus-circle"></i> Add</a></div><div id="field';
var removeButton = $(removeBtn);
$(addto).after(newInput);
$(addRemove).after(removeButton);
$("#field" + next).attr('data-source', $(addto).attr('data-source'));
$("#count").val(next);
$('.remove-me').click(function(e) {
e.preventDefault();
var fieldNum = this.id.charAt(this.id.length - 1);
var fieldID = "#field" + fieldNum;
$(this).remove();
$(fieldID).remove();
});
});
Теперь, когда пользователь нажимает кнопку «Добавить строку ввода», я получаю следующее
, но ожидаемый результат должен выглядеть следующим образом
ЗДЕСЬ это jsfiddle DEMO
Что я делаю неправильно ???