如何在Razor中检索客户端的复选框选中属性?

时间:2013-12-29 14:12:39

标签: jquery asp.net-mvc asp.net-mvc-3 razor

我是MVC的新手,现在我正在尝试显示一个项目列表,每个项目由一个Name和一个绑定到模型中属性(Selected)的复选框组成。

我想在用户点击复选框时处理某些验证,因此我的方法是设置onclick事件,如下所示。

@foreach (var item in Model)
{
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Name)
        </td>
        <td>
            @Html.CheckBoxFor(modelItem => item.Selected, 
                              new {@onclick="alert($(this).val());"})
        </td>
    </tr>
}

问题是$(this)没有像我预期的那样引用复选框,我看不到chekcked属性(事实上我无法确定$(this)指向的内容)

我无法通过id获取DOM元素,因为razor没有设置id并且不能按类选择它,因为列表包含几个相同类的复选框。

我对如何解决这个问题有一些想法,但我确信必须有一个明智的方法来做到这一点,所以......

如何检索复选框的选中值?

1 个答案:

答案 0 :(得分:1)

在内联事件处理程序中,this引用DOM元素 this.checked会告诉您是否已选中。

$(this)是一个包含this的jQuery对象; jQuery对象没有checked属性。 .val()将返回value属性的值。