使用knockout和jquery ajax填充下拉列表
我正在使用像这样的ajax填充下拉列表。
var getCertifications = function () { $.getJSON("/Provider/GetCertifications", function (data) { $.each(data, function (i, item) { var certification_data = "" + item.Certification + ""; $(certification_data).appendTo("#certification"); }); }); };
在document.ready方法中调用getCertifications。 我想根据第一个下拉列表中所选选项的值填充第二个下拉列表。所以我写了另一个函数
var getSpecializations = function () { var value = $("#certification").val(); $.getJSON("/Provider/GetSpecializations/", { certificationID: value }, function (data) { $.each(data, function (i, item) { var specialization_data = "" + item.Specialization + ""; $(specialization_data).appendTo("#specialization"); }); }); }
html如图所示
Select a Certification Select a Specialization
我的视图模型具有如图所示的可观察量
self.certification = ko.observable(""); self.specialization = ko.observable("");
我在第一个下拉列表的subscribe方法中调用getSpecializations函数,就像这样
self.certification.subscribe(function () { getSpecializations(); });
控制台没有错误,但第二次下拉即; 专业化下拉列表没有填充。你能不能指引我指向正确的方向。
那么你需要这样做
查看:
视图模型:
var getSpecializations = function () { var value = self. $.getJSON("/Provider/GetSpecializations/", { certificationID: value }, function (data) { self.specializationArray(data) //array with Specialization and SpecializationId }
在这里工作小提琴