在页面上运行代码?

时间:2010-10-03 11:28:51

标签: javascript jquery asp.net-mvc

我有一个MVC视图,其中包含一些这样的下拉列表:

        <%: Html.DropDownListFor(model => model.CS.C1, Model.CS.Category1List, "-- Välj kategori --")%>
        <%: Html.DropDownListFor(model => model.CS.C2, Model.CS.Category2List, "-- Välj kategori --")%>
        <%: Html.DropDownListFor(model => model.CS.C3, Model.CS.Category3List, "-- Välj kategori --")%>
        <%: Html.DropDownListFor(model => model.CS.C4, Model.CS.Category4List, "-- Välj kategori --")%>
        <%: Html.DropDownListFor(model => model.CS.C5, Model.CS.Category5List, "-- Välj kategori --")%>
        <%: Html.DropDownListFor(model => model.CS.C6, Model.CS.Category6List, "-- Välj kategori --")%>

为了赞美这个AJAX调用(创建CascadingDropDown)我有以下javascript:

$(document).ready(function () {

            $("#CS_C1").change(function () { lastCategoryId = $("#CS_C1").val() });
            $("#CS_C2").change(function () { lastCategoryId = $("#CS_C2").val() });
            $("#CS_C3").change(function () { lastCategoryId = $("#CS_C3").val() });
            $("#CS_C4").change(function () { lastCategoryId = $("#CS_C4").val() });
            $("#CS_C5").change(function () { lastCategoryId = $("#CS_C5").val() });
            $("#CS_C6").change(function () { lastCategoryId = $("#CS_C6").val() });

            $("#CS_C2").CascadingDropDownCategory("#CS_C1", '/AdCategory/GetCategoriesByParent', '', true, SetFilter);
            $("#CS_C3").CascadingDropDownCategory("#CS_C2", '/AdCategory/GetCategoriesByParent', '', true, SetFilter);
            $("#CS_C4").CascadingDropDownCategory("#CS_C3", '/AdCategory/GetCategoriesByParent', '', true, SetFilter);
            $("#CS_C5").CascadingDropDownCategory("#CS_C4", '/AdCategory/GetCategoriesByParent', '', true, SetFilter);
            $("#CS_C6").CascadingDropDownCategory("#CS_C5", '/AdCategory/GetCategoriesByParent', '', true, SetFilter);

            $("#LS_L2").CascadingDropDown("#LS_L1", '/Location/GetLocationsByParent', '', true);

            alert(lastCategoryId);
            SetFilter(lastCategoryId);
        });

CascadingDropDownCategory函数来自this site

在发帖时,下拉菜单设置正确但运行时

SetFilter(lastCategoryId);

lastCategoryId是sill -1?我可以看到下拉列表有值,还应该触发更改事件?为什么我得到-1?我怎么能解决它?

BestRegards

1 个答案:

答案 0 :(得分:1)

lastCategoryId.change()回调中设置(这意味着它会在<select>更改后才会设置),所以到最后你会到达文档的末尾功能它还没有设置。

此外,每当您声明一个没有var的变量时,它就会变为全局变量。始终在函数开头用var声明变量。