尝试在ASP.NET MVC中检索我的DropDownList的选定值。我正在使用以下代码:
HTML
grid.Column("Other", header: "Other", format: @<text>@Html.DropDownList("OtherKey", (IEnumerable<SelectListItem>)ViewBag.OtherKeysList, new { @class = "extra-class" })</text>)))
结果如下:
尝试使用以下代码检索我的DropDownList的选定值(在本例中为:otherkey3,otherkey2,otherkey1):
<script type="text/javascript">
var dict = [];
$('#btnSubmit').click(function (e) {
$('#tableID > tbody > tr > td').each(function () {
$('#OtherKey > option').each(function () {
console.log(($(this).val()));
});
});
});
</script>
但是这不起作用,我得到以下输出:
有人看到我在做什么错吗?
谢谢!
答案 0 :(得分:0)
这里有两个问题。首先,您将获得每个<option>
的值,因此它将始终返回所有选择的选项,否则将被选择。在.val()
本身上使用<select>
来获取当前选择的值:
console.log($('#OtherKey').val());
但是,这似乎还表明您正在HTML中重新使用OtherKey
ID。看一看服务器端代码生成的实际HTML。如果ID不是唯一的,则使用这些ID的JavaScript代码的行为是不确定的。
您的元素似乎确实在使用class
,因此您可以改用它。 (如果这些元素不是唯一的,则可以为其分配一个额外的类。)类似这样的东西:
$('.extra-class').each(function () {
console.log(($(this).val()));
});
还要注意,您不需要遍历表行和通过<select>
元素,只需后者就可以了。除非您出于其他未在此处显示的其他原因而特别需要标识表行。