在表格中选择隐藏字段值

时间:2015-11-19 11:32:36

标签: jquery hidden-field

我有一张表,用户可以在其中选择样本。在每一行中都有隐藏字段,其中包含唯一的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的相同值,但勾选了相同数量的复选框。我做错了什么?

谢谢你的进步。

2 个答案:

答案 0 :(得分:0)

你应该试试这个。

@foreach (var item in Model.SampleInfo)
{
<tr>
     @Html.HiddenFor(i=>item.SampleId ,new { @class="item_SampleId"})
     <td class="text-center">@Html.CheckBoxFor(i=>i.Selected)</td>
</tr>
}

答案 1 :(得分:0)

最后的结论:

HTML:

<input data-sampleid="60815" data-val="true" data-val-required="The Selected field is required." id="SampleIdSelect0" name="SampleInfo[0].Selected"  type="checkbox" value="true">

Jquery的:

$("#nonScheduledSamples tr input").each(function () {
     if ($(this).prop("checked")) {
          var x = this.id.slice(14);
          data.push($("#SampleIdSelect" + x).data("sampleid"));
     }
});

因此,对id文本部分进行切片,并获得相同的id数据值,该值可以推送到数组中。这是一场战斗......

如果你有请分享,可能还有更好的解决方案。