ile nasıl kopyalayabilirsiniz Tablo var ve Add New Ekle düğmesine basıldıktan sonra son satırını kopyalamak istiyorum. Satırlarımda yalnızca TextBox'larım olduğunda tamamen iyi çalışır, ancak bir açılır kapanmaz olduğunda olmaz. Lütfen jquery kodunu değiştirmeme yardım edin. İşte tablonun kod:Tablo satırını jQuery
<div><a href="#" id="addNew">Add New</a></div>
<table id="dataTable">
<tr>
<th>Item</th>
<th>Cost</th>
<th></th>
</tr>
@if (Model != null && Model.Count > 0)
{
int j = 0;
foreach (var i in Model)
{
<tr>
<td>@Html.DropDownListFor(a => a[j].fk_purchase_id, (SelectList)ViewBag.fk_purchase_id, null, htmlAttributes: new { @class = "form-control"})</td>
<td>@Html.TextBoxFor(a => a[j].cost, htmlAttributes: new { @class = "form-control" })</td>
<td>
@if (j > 0)
{
<a href="#" class="remove">Remove</a>
}
</td>
</tr>
j++;
}
}
</table>
Ve burada bazı iyileştirme ihtiyaçları kod:
<script>
$(function() {
//1. Add new row
$("#addNew").click(function (e) {
e.preventDefault();
var $tableBody = $("#dataTable");
var $trLast = $tableBody.find("tr:last");
var $trNew = $trLast.clone();
alert($trNew.html);
var suffix = $trNew.find(':input:first').attr('name').match(/\d+/);
$trNew.find("td:last").html('<a href="#" class="remove">Remove</a>');
$.each($trNew.find(':input'), function (i, val) {
// Replaced Name
var oldN = $(this).attr('name');
var newN = oldN.replace('[' + suffix + ']', '[' + (parseInt(suffix) + 1) + ']');
$(this).attr('name', newN);
//Replaced value
var type = $(this).attr('type');
if (type.toLowerCase() == "text") {
$(this).attr('value', '');
}
});
$trLast.after($trNew);
});
});
</script>
Ben giriş için seçmek değişen nereye bu çizgiyi değiştirmeye çalıştı ancak bu,
numaralı telefona yardımcı olmadıvar suffix = $ trNew.find (': giriş: ilk'). Attr ('name'). Match (/ \ d + /); İlk gibi tablodaki
tbody
eklemek
Cevapları [buradan] (http göre farklı bir yaklaşım öneriyoruz:
Ve Senaryonuzun olduğu // stackoverflow.com/questions/28019793/submit-same-partial-view-called-multiple-times-data-to-controller/28081308#28081308) ve [burada] (http://stackoverflow.com/questions/40539321/a -kısmi-view-geçer-a-toplama-kullanma-html-begincollectionitem-yardımcı/40541892 # 4054 1892) –