Чтобы ответить на вопрос «Можно ли разместить кнопку снаружи?»:
Вот версия с кнопкой перед всеми полями ввода:
Начиная сСама кнопка (this
) ищет ближайший родительский контейнер типа td
, затем находит всех его братьев и сестер и их потомков типа input
.Результатом является объект jquery со всеми входными данными одной строки таблицы.Затем выполните копирование значений из первого (flds.eq(0)
) во все остальные (flds.slice(1)
).
$('.table a.btn').click(function() {
var flds = $(this).closest('td').siblings().find('input');
flds.slice(1).val(flds.eq(0).val());
});
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<table class="table"><thead><tr>
<th scope="col">#</th><th scope="col">First</th><th scope="col">Last</th>
</tr></thead><tbody><tr><td>
<a href="#" class="btn btn-success btn-sm mt-1">Copy</a>
</td><td>
<input type="text" class="form-control" value="1">
</td><td>
<input type="text" class="form-control" value="11">
</td><td>
<input type="text" class="form-control" value="11">
</td></tr><tr><td>
<a href="#" class="btn btn-success btn-sm mt-1">Copy</a>
</td><td>
<input type="text" class="form-control" value="2">
</td><td>
<input type="text" class="form-control" value="2">
</td><td>
<input type="text" class="form-control" value="2">
</td></tr><tr><td>
<a href="#" class="btn btn-success btn-sm mt-1">Copy</a>
</td><td>
<input type="text" class="form-control" value="3">
</td><td>
<input type="text" class="form-control" value="3">
</td><td>
<input type="text" class="form-control" value="3">
</td></tr></tbody></table>