Код Jquery внутри клонированного элемента подключен неправильно
Я пытаюсь создать расширяемую форму, которая включает в себя некоторые элементы автозаполнения jquery-ui, но выпадающие меню автозаполнения не будут правильно прикреплены к форме; вместо этого они вызывают исходные (скрытые) элементы формы независимо от того, какой клон выбран.
Если вы посмотрите на мой фрагмент кода: нажатие кнопки "Добавить строку" создает клон моей скрытой строки таблицы, а выбор ячеек "Элемент" или "Корректировка" приводит к появлению меню выбора в углу. Выбор чего-либо из этих меню ничего не делает в ячейке.
Что должно произойти, так это то, что клонированные ячейки "Элемент" и "Корректировка" должны вести себя так же, как и ячейка "Пользователь" выше.
Может ли кто-нибудь помочь мне в этом?
HTML / Javascript
// Field Cloning
$(document).ready(function(e) {
$('a.group_add').on('click', function() {
var cloned = $('#rowToClone').clone(true);
cloned.find(':input').each(function() {
switch (this.type) {
case 'text':
this.value = '';
break;
case 'textarea':
this.value = '';
break;
case 'checkbox':
case 'radio':
this.checked = false;
break;
}
});
$('.all_group').append(cloned);
});
$('table.all_group').on('click', '.group_remove', function() {
var tr = this.parentElement.parentElement;
tr.remove();
});
});
$(function() {
var items_list = ['Item 1', 'Item 2', 'Item 3', 'Item 4', ];
$(".items_list").autocomplete({
source: items_list,
minLength: 0
});
$(".items_list").click(function() {
$(this).autocomplete("search", "");
});
});
$(function() {
var item_adj_list = ['Adj 1', 'Adj 2', 'Adj 3'];
$(".item_adj_list").autocomplete({
source: item_adj_list,
minLength: 0
});
$(".item_adj_list").click(function() {
$(this).autocomplete("search", "");
});
});
$(function() {
var users_list = ['User 1', 'User 2', 'User 3', ];
$(".users_list").autocomplete({
source: users_list,
minLength: 0
});
$(".users_list").click(function() {
$(this).autocomplete("search", "");
});
});
#cloneTable {
display: none;
}
.f_label {
font-weight: bold;
}
.group_1 {
border-collapse: collapse;
}
.group_1 .f_input {
padding: 0;
margin: 0;
}
.group_1 .f_input textarea {
margin-top: 3px;
resize: none;
}
.group_row {
margin-bottom: 0;
}
.group_add {
border: 1px solid #888;
text-decoration: none;
background-color: #ccc;
color: #000;
padding: 2px;
}
.group_remove {
text-decoration: none;
color: #aa0000;
}
<head>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
</head>
<body>
<table id='cloneTable'>
<tr id='rowToClone'>
<!-- Item -->
<td class="f_input">
<input type="text" class="items_list auto_list" name="list_items[]" value="" size="8"><br>
</td>
<!-- Description -->
<td class="f_input">
<textarea name="list_desc[]" rows="1" cols="25"></textarea><br>
</td>
<!-- Qty -->
<td class="f_input">
<input type="text" name="list_qty[]" value="" size="1"><br>
</td>
<!-- Adjustment -->
<td class="f_input">
<input type="text" class="item_adj_list auto_list" name="list_adj[]" value="" size="8"><br>
</td>
<td class="remove_td"> <a href="#" class="group_remove">X</a></td>
</tr>
</table>
<form>
<!-- Customer -->
<div class="field_cust_id all_field">
<div class="f_label">User</div>
<div class="f_input">
<input type="text" class="users_list ui-autocomplete-input" name="cust_id" value=""><br>
</div>
</div>
<br>
<table class='group_1 all_group'>
<tr>
<td class='f_label'>Item</td>
<td class='f_label'>Description</td>
<td class='f_label'>Qty</td>
<td class='f_label'>Adjustment</td>
<td> </td>
</tr>
</table>
<br><a href='#' class='group_add'>+ Add Row</a>
<br><br><br><input type='submit' value='Submit'>
</form>
</body>