Я использую каскадные выпадающие списки в своем приложении MVC, и он отлично работает.
Я добавил мобильную библиотеку jQuery, чтобы она лучше выглядела в браузере мобильных устройств, и у меня возникла ошибка.
Пример:
если я выберу первый раз Chevrolet, он заполняет детскую выпадающую модель Chevrolet. - как и ожидалось
Если я выберу второй раз другой производитель, я все равно вижу модели предыдущего производителя, но если я выберу его, я вижу новую модель. Похоже, это обналичивание моделей из предыдущих марок.
Вот мой код:
$(document).ready(function () {
$('select#Makes').change(function () {
getModels();
});
});
function getModels() {
var make = $('#Makes').val();
var myselect2 = $("select#Models");
myselect2[0].selectedIndex = 3;
myselect2.selectmenu("refresh");
$.ajax({
type: "POST",
url: "/Services/CarService.asmx/Models",
data: "{makeId: '" + make + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
var models = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
$('#Models').attr('disabled', false).removeOption(/./); //.addOption('', ' -- Select Model -- ');
var select = document.getElementById("Models");
for (var i = 0; i < models.length; i++) {
var val = models[i];
var text = models[i];
$('select#Models').addOption(val, text, true);
}
var myselect = $("select#Models");
myselect[0].selectedIndex = 3;
myselect.selectmenu("refresh");
}
});
}
@Html.DropDownList("Makes", "Please select make")
@Html.DropDownListFor(x => x.Models, new SelectList(Enumerable.Empty<SelectListItem>(), "value", "text"), "Select a Model", new { id = "Models" })