【发布时间】:2015-08-24 10:42:19
【问题描述】:
我是 mvc5 的新手。我面临的一个问题是我想在表格中渲染一些行,每行都有一个单选按钮。如果我单击或选中单选按钮,那么它将在该行中显示一张图片。现在的问题是,我试图通过单击来测试每一行,但结果只有一行显示警报,这只是第一行。我不知道的问题在哪里?你能帮我找出问题吗?
@if (Model != null) {
foreach (var item in Model) {
<tr style="vertical-align:middle">
<td style="vertical-align:middle">
@Html.DisplayFor(modelItem => item.CandId)
</td>
<td style="vertical-align:middle">
@Html.DisplayFor(modelItem => item.CandName)
</td>
<td style="vertical-align:middle">
@Html.HiddenFor(modelItem => item.Position, new {id="ps" })
</td>
<td style="vertical-align:middle">
<img src="/Ballot/RetrieveImage/@item.id" alt="" height=50 width=50/>
@*@Html.DisplayFor(modelItem => item.cand_symbol)*@
</td>
<td style="vertical-align:middle; text-align:center;">
@Html.RadioButtonFor(modelItem => item.isCandidate, item.CandId, new { id="rd",name="rd"})
<img src="" height="50" width="50" id="picture" hidden />
</tr>
}
}
$("#rd").click(function () {
$('#picture').attr('src', '/Images/vt.png');
var ps = $('#ps').val();
alert(ps);
$(picture).show();
});
【问题讨论】:
-
因为您使用所有重复的
id属性生成无效的html 并使用.val()只会返回id="ps")的第一个元素的值 -
在任何情况下单选按钮都不适合这个。单选按钮用于从众多中选择一个,这显然不是您的意图。只需使用按钮或复选框(不使用 html 帮助程序)并将值添加为
data-属性并删除隐藏的输入。
标签: javascript c# jquery asp.net-mvc-4 razor