如何从Foreach循环中为隐藏输入访问值?

时间:2019-01-23 19:26:29

标签: c# jquery asp.net-mvc-5

在这里,我尝试使用jquery从foreach循环内和表行内获取隐藏形式输入hadoop fs -test -e "/user/foo/bar/abc*"的值形式。但是我的脚本什么也没返回。
因此,对我的方法提供的任何帮助都会对您有所帮助。

以下是我的html

<input type="hidden" id="msg" value="1" />



以下是我访问值的脚本

@foreach (var item in Model)
{
<tr>
    <input type="hidden" id="msg" value="1" />
    @Html.HiddenFor(x => item.studentid, new { @id = "studentidforRejectectionadmission" })
    <td>@Html.DisplayFor(modelItem => item.fullname)</td>
    <td>@Html.DisplayFor(modelItem => item.classname)</td>
</tr>
}

2 个答案:

答案 0 :(得分:0)

如评论中所述,您具有相同的ID“ msg”。 建议不要使用“ msg”类作为输入,而不是使用多个ID。

如果重要的是像您对表行那样进行匹配,则输入ID为msg:

$("tr").find('input#msg').val();

等效为

$("tr > input.msg").val();

如果您要访问特定的隐藏输入,则可以按以下方式访问:

$("tr > input.msg")[1].value;

为了向您展示其工作原理,我为您创建了一个dotnetfiddle。也许您面临的问题是您错过了围绕代码创建表格标签的功能,以使其正常工作,否则您将无法获得表格行... https://dotnetfiddle.net/Jt7KGp

答案 1 :(得分:0)

删除 id 并放入 class ,因为id在html和 类可以在任何元素中重复类名称

 @foreach (var item in Model)
    {
    <tr>
        <input type="hidden" class="msg" value="1" />
        @Html.HiddenFor(x => item.studentid, new { @id = "studentidforRejectectionadmission" })
        <td>@Html.DisplayFor(modelItem => item.fullname)</td>
        <td>@Html.DisplayFor(modelItem => item.classname)</td>
    </tr>
    }
  

现在您可以通过jQuery雄辩的选择器访问输入值

let val = $("tr").find('.msg').eq(0).val();
console.log(val);