【发布时间】:2015-11-19 11:32:35
【问题描述】:
我有一个表格,用户可以在其中选择样本。在每一行中都有一个隐藏字段,其中包含一个唯一的 id。我想在数组中获取选中(选中)行的隐藏字段的值,以便将其传递给处理。
到目前为止我得到了什么:
var data = Array();
$("#nonScheduledSamples tr").each(function (i) {
if ($(this).prop("checked")) {
data[i] = $(this).find("#item_SampleId").val();
}
});
表格由MVC局部视图生成:
@foreach (var item in Model.SampleInfo)
{
<tr>
@Html.HiddenFor(i=>item.SampleId)
<td class="text-center">@Html.CheckBoxFor(i=>i.Selected)</td>
</tr>
}
这会返回一个空数组给我。非常感谢任何帮助。
更新 #1:
我已经修改了代码,所以 html 看起来像这样:
<input data-sampleid="60815" data-val="true" data-val-required="The Selected field is required." id="SampleIdSelect" name="SampleInfo[0].Selected" type="checkbox" value="true">
和 jquery:
$("#nonScheduledSamples tr input").each(function () {
if ($(this).prop("checked")) {
data.push($("#SampleIdSelect").data("sampleid"));
}
});
目前,数据数组填充了与 data-sampleid 相同的值,但选中的复选框数量相同。我做错了什么?
谢谢提前。
【问题讨论】:
-
表格由MVC局部视图生成。
-
so html 将有助于查看它生成的内容:) 您的 SampleInfo 数组很可能是空的,因此不会生成任何行,您也可以使用调试器检查它
-
数据在那里,因为表格显示正确。我的 jquery 部分有问题。
-
@Paxsentry:检查元素,复制 html 然后在这里分享
-
这是部分视图生成的输入字段代码:
标签: jquery hidden-field