我在网上尝试了不同的方法但没有任何工作。下面是我的表。
我想要ID和输入框的值。以下是我的表格。
<a id="procressGrid" class="deletePageLink" href="#" title="Delete Menu" >Process Grid</a>
<div class="gridDiv">
<table class="gridTable" cellspacing="0" cellpadding="0">
<tr class="gridTitleRow">
<td class="numberingTd width36"> </td>
<td class="iconLink width60">Sort Order</td>
<td class="iconLink widthAuto">Display Name</td>
<td class="iconLink widthAuto">Url Name</td>
<td class="iconLink widthAuto">Active</td>
</tr>
@foreach (var grp in distMenu)
{
@Html.Hidden("Id", @grp.Id)
<tr class="gridRow">
<td class="numberingTd">@(num++)</td>
<td class="cellTd"><input name="code" class="numberField" type="text" value="@grp.Id" /></td>
<td class="cellTd">@grp.DisplayName</td>
<td class="cellTd ">@grp.UrlName Us</td>
<td class="cellTd ">@grp.Active</td>
</tr>
}
</table>
</div>
答案 0 :(得分:2)
HTML元素的ID应该是唯一的。 因此改变了您正在使用的HTML呈现。 检查JS函数getIDs,看看如何将ID作为数组。
<script type="text/javascript">
function getIDs(){
var dataArray = [];
$.each($(".gridTable tr:not(.gridTitleRow)"), function(a, b){
var id = $("input.idField", b).val();
var code = $("input[name='code']", b).val();
dataArray.push({
"id": id,
"code": code
})
});
return dataArray;
}
</script>
<a id="procressGrid" class="deletePageLink" href="#" title="Delete Menu" >Process Grid</a>
<div class="gridDiv">
<table class="gridTable" cellspacing="0" cellpadding="0">
<tr class="gridTitleRow">
<td class="numberingTd width36"> </td>
<td class="iconLink width60">Sort Order</td>
<td class="iconLink widthAuto">Display Name</td>
<td class="iconLink widthAuto">Url Name</td>
<td class="iconLink widthAuto">Active</td>
</tr>
@foreach (var grp in distMenu)
{
<tr class="gridRow">
<td class="numberingTd">
@(num++)
@Html.Hidden("Id_" + num, @grp.Id, new{class="idField"})
</td>
<td class="cellTd"><input name="code" class="numberField" type="text" value="@grp.Id" /></td>
<td class="cellTd">@grp.DisplayName</td>
<td class="cellTd ">@grp.UrlName Us</td>
<td class="cellTd ">@grp.Active</td>
</tr>
}
</table>
</div>