我是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并且不能按类选择它,因为列表包含几个相同类的复选框。
我对如何解决这个问题有一些想法,但我确信必须有一个明智的方法来做到这一点,所以......
如何检索复选框的选中值?
答案 0 :(得分:1)
在内联事件处理程序中,this
引用DOM元素
this.checked
会告诉您是否已选中。
$(this)
是一个包含this
的jQuery对象; jQuery对象没有checked
属性。
.val()
将返回value
属性的值。