我有一个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
答案 0 :(得分:1)
lastCategoryId
在.change()
回调中设置(这意味着它会在<select>
更改后才会设置),所以到最后你会到达文档的末尾功能它还没有设置。
此外,每当您声明一个没有var
的变量时,它就会变为全局变量。始终在函数开头用var
声明变量。