jQuery获取MVC Razor中选中为true的相应复选框的隐藏值

时间:2018-07-23 07:33:56

标签: jquery asp.net-mvc

我的要求

使用jQuery,我需要在隐藏的输入处获取值(signalID),并将其对应的复选框选中为true。

我的视图是

<ul class="nav navbar-nav navbar-left checkboxtext signalCheckBox">
    @for (int i = 0; i < @Model.SelectSignalList.Count(); i++)
    {

        <li style="vertical-align:central; padding:-5px;">
            @Html.CheckBoxFor(m => m.SelectSignalList[i].IsSelected, new { @class = "checkboxsel"})
            @Html.HiddenFor(m => m.SelectSignalList[i].SignalName)
            @Html.HiddenFor(m => m.SelectSignalList[i].SignalID, new { @class = "checkboxID" })
            @Html.DisplayFor(m => m.SelectSignalList[i].SignalName, new { @class = "checkboxtext" })
        </li>

    }
</ul>

在这里,如果对应的复选框(类别= checkboxsel)都为true,则需要将所有SignalID(类别= CheckboxID)放入数组。

因此,如果显示的复选框为

  

S1(选中)S2(未选中)S3(选中)S4(选中)S5(未选中)

然后仅将与复选框S1, S3 and S4对应的ID推送到数组。

我尝试过的事情

下面的查询中,我不知道如何在我的代码中的???处获取索引以获得正确的ID(selected_value.push($(".checkboxID")[???].defaultValue);

$(".checkboxsel:checked").each(function () {
                    var item = $(this);   
                    selected_value.push($(".checkboxID")[???].defaultValue); 
                });
                sig = selected_value.toString();

如果我放置i,它会将后续的ID(0,1,2 ...)推送到signalID的隐藏输入中,而不是在检查为true的复选框的索引处获取确切的索引。

1 个答案:

答案 0 :(得分:0)

使用.parent()引用父元素,然后使用.find() / .children()获取对hidden输入的引用。

然后,可以使用.prop()方法来获取元素属性。

使用

selected_value.push($(this).parent().find(".checkboxID").prop("defaultValue"));

,使用.nextAll()获取具有特定类别的所有后续兄弟。

selected_value.push($(this).nextAll(".checkboxID").prop("defaultValue"));