0

我有一个下拉列表。即使在执行 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.. 我想根据选择的内容路由到每个控制器......

4

2 回答 2

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 = "";
        });
    });
于 2012-05-09T15:17:07.670 回答
0

为什么不将表单发布到控制器,然后控制器可以查看您为表单字段选择的值,并将您重定向到 /kids?MovieType=Kids 或 /adult?MovieType=Adult。那么你的 onchange 就是 form.submit()。这遵循 Post、Redirect、Get 方法。

于 2012-07-13T06:21:27.123 回答