我有一个下拉列表。即使执行了javascript函数,如何使选定的值保持选中状态。现在,无论我选择什么选项,运行javascript函数后,下拉默认返回第一个选项。
<%=Html.DropDownList("MovieType", new List<SelectListItem>
{
new SelectListItem{ Text="Kids", Value = "Kids" },
new SelectListItem{ Text="Adults", Value = "Adults" }
}, new { onchange = "GetGenre()" })%>
的Javascript
function GetGenre()
{
var e = document.getElementById("MovieType");
var SelValue = e.options[e.selectedIndex].value;
if (SelValue == "Kids")
window.location.href = "";
else
window.location.href = "";
}
编辑:
我在MVC3,KidsController和AdultsController中有两个控制器..我想根据拾取的内容路由到每个控制器......
答案 0 :(得分:2)
<%=Html.DropDownList("MovieType", new List<SelectListItem>
{
new SelectListItem{ Text="Kids", Value = "Kids" },
new SelectListItem{ Text="Adults", Value = "Adults" }
}, new { @id = "ddlGetGenre" })%>
$(document).ready(function () {
$('#ddlGetGenre').val($.cookies('ddlGetGenre'));
$('#ddlGetGenre').on('change', function () {
$.cookies('ddlGetGenre', $(this).val());
if ($(this).val() === "Kids")
window.location.href = "";
else
window.location.href = "";
});
});
答案 1 :(得分:0)
为什么不将表单发布到控制器上,然后控制器可以查看您为表单字段选择的值,并将您重定向到/ kids?MovieType = Kids或/ adult?MovieType = Adult。然后你的onchange就是form.submit()。这遵循Post,Redirect,Get方法。