一連の複数選択ドロップダウン コントロールがあります。1 つ目 (users) は、値の 1 つが変更されたときに 2 つ目 (userGroups) を更新し、2 つ目 (userGroups) は 3 つ目 (theaters) のリストの内容を更新します。
最初のドロップダウン (ユーザー) の onChange イベントは正常に機能しています。ただし、2 番目 (userGroups) の onChange イベントは、値の 1 つが変更されたときに発生せず、3 番目のドロップダウン (シアター) のリストを更新しません。
Javascript を使用した経験から、onChange を再初期化する必要があることはわかっています。しかし、Bootstrap の複数選択でこれを行う方法がわかりません。私のコードは次のとおりです。
$('.users').multiselect({
numberDisplayed: 1,
maxHeight: 400,
includeSelectAllOption: false,
enableCaseInsensitiveFiltering: true,
filterBehavior: 'both',
disableIfEmpty: true,
onChange: function (element, checked) {
var userName = $('.users').val();
if (userName != null) {
userName = userName.toString();
}
$.ajax({
url: '@Url.Action("LoadUserGroups")',
data: { "userName": userName },
success: function (data) {
$('.userGroups').multiselect('destroy');
$('.userGroups').replaceWith($(data));
$('.userGroups').multiselect('rebuild');
},
error: function (xhr) {
$('.userGroups').multiselect('destroy');
$('.userGroups').multiselect('rebuild');
}
});
}
});
$('.userGroups').multiselect({
numberDisplayed: 1,
maxHeight: 400,
includeSelectAllOption: false,
enableCaseInsensitiveFiltering: true,
filterBehavior: 'both',
disableIfEmpty: true,
onChange: function (element, checked) {
javascript: console.log("OnChange event fired");
var groupId = $('.userGroups').val();
if (groupId != null) {
groupId = groupId.toString();
}
$.ajax({
url: '@Url.Action("LoadTheaters")',
data: { "groupId": groupId },
success: function (data) {
$('.theaters').multiselect('destroy');
$('.theaters').replaceWith($(data));
$('.theaters').multiselect('rebuild');
},
error: function (xhr) {
$('.theaters').multiselect('destroy');
$('.theaters').multiselect('rebuild');
}
});
}
});
});
誰かがこれを行う方法を教えてくれたり、少なくとも正しい方向に向けてくれるなら、とても感謝しています。前もって感謝します。