我一直在试图解决这个问题几个小时。我已经尝试了大多数关于这个问题的代码,并且没有成功获得正确的指南并回答使用@html.dropdown。我有一个下拉列表,它从控制器ViewBag中获取值。
public ActionResult FindBirthStones()
{
ViewBag.birthstones = new SelectList(dbcontext.GemStoneByMonths, "GemStoneByMonthId", "EnglishZodiac");
return View();
}
在我的观点中我写过。
@Html.DropDownListFor(m=>m.EnglishZodiac,(SelectList)ViewBag.birthstones, new { @id = "hello" })
我试过@html.dropdownlist而不是listfor。
@Html.DropDownList("EnglishZodiac", (SelectList)ViewBag.birthstones, new { @id = "hello" })
我希望使用jquery从下拉列表或列表中获取所选值。我尝试了大多数答案
var a= $("hello").text()
var a= $("hello option:selected").text()
var a= $("hello :selected").text()
并且它们都不起作用。有人可以帮我解决。
答案 0 :(得分:1)
理想情况下,您无需将DropDownList
的ID重命名为hello
。
@Html.DropDownListFor(m => m.EnglishZodiac, (SelectList)ViewBag.birthstones));
相反,您需要使用#
在jQuery中通过ID获取元素。 How do I get the text value of a selected option?
var a = $("#EnglishZodiac option:selected").text();
如果脚本在View.cshtml
内,您甚至可以使用强类型的html帮助器Html.IdFor
。
$("#@Html.IdFor(m => m.EnglishZodiac) option:selected").text();
如果您想获得所选值,可以使用.val()
。
var a = $("#EnglishZodiac").val();
答案 1 :(得分:1)
要通过它的id引用元素,你需要使用hash(#)选择器,如下所示:
// To get the text of the selected option
var a = $("#hello option:selected").text();
// To get the value of the selected option
var b = $("#hello").val();