我有一个MVC表单表,我正在创建动态列表以推回到对象列表。使用名称的格式:"对象[0] .Property"。
但是我需要确保我的项目编号正确,我的想法是获取表格中的每一行,然后使用正确的数字重命名项目。
function reseq() {
$('.EmpFunctRow').each(function(i) {
var row = $(this);
row.children('input').each(function() {
this.name = "Approvals[" + i + "].appEmpID";
});
});
}
有办法做到这一点吗?我似乎无法做对。我不一定需要遍历每个孩子,我只需要能够选择匹配的孩子。
我的第一次尝试确实有效,但每行中有多个项目我没有按行排列:
var x = $('input[name^="Approvals"');
for (var i = 0; i < x.length; i++) {
x[i].name = "Approvals[" + i + "].appEmpID";
}
有没有办法可以将这两种方法结合起来,对于每一行,获取与我要查找的名称相匹配的项目并更新它?
HTML:
<table id="EmpAssignedTable">
<tr>
<th></th>
<th>Employee</th>
<th>Route</th>
</tr>
</table>
模板被Ajax加入表中:
<tr class="EmpFunctRow">
<td>
<input type="button" value="X" class="btnRemoveRow"/>
</td>
<td>
<label class="lblEmp">@Model.EmployeeName</label><input type="hidden" name="Approvals[0].appEmpID" value="@Model.EmployeeID"/>
</td>
<td>
<label class="lblFunct">@Model.FunctDesc</label><input type="hidden" name="Approvals[0].appFunctID" value="@Model.FunctID"/>
</td>
答案 0 :(得分:2)
我认为这应该有效:
这是一个正在运行的例子。如果检查结果,则可以看到填充的名称。
$(function() {
$(".EmpFunctRow").each(function(index) {
$(this).find('input[type="hidden"]').each(function() {
var $this = $(this);
var labelClass = $this.prev("label").attr("class").replace("lbl", "");
$this.attr("name", "Approvals[" + index + "].app" + labelClass + "ID");
});
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
<tr class="EmpFunctRow">
<td>
<input type="button" value="X" class="btnRemoveRow"/>
</td>
<td>
<label class="lblEmp"></label>
<input type="hidden" />
</td>
<td>
<label class="lblFunct"></label>
<input type="hidden" />
</td>
</tr>
<tr class="EmpFunctRow">
<td>
<input type="button" value="X" class="btnRemoveRow"/>
</td>
<td>
<label class="lblEmp"></label>
<input type="hidden" />
</td>
<td>
<label class="lblFunct"></label>
<input type="hidden" />
</td>
</tr>
</table>
&#13;