私は2つのブートストラップマルチセレクトボックスを持っています。Ajax 呼び出しを介して行われた選択に基づいて、一方の項目を更新したいと考えています。
マルチセレクトがオプションを表示するために使用するものが「再構築」または「更新」によって取り込まれていないことを除いて、すべてが機能します。
コード:
複数選択のデカール化"
$('#Groups').multiselect({
onChange: function (option, checked) {
//get all of the selected tiems
var values = $('#Groups option:selected');
var selected = "";
$(values).each(function (index, value) {
selected += $(value).prop('value') + ",";
});
selected = selected.substring(0, selected.length - 1);
//update hidden field with comma delimited string for state persistance
$("#Hidden_Groups").val(selected);
},
includeSelectAllOption: true
});
オプション リストの更新:
$('#JobCodes').multiselect({
onDropdownHide: function(event) {
console.log("start");
var option = $("#Groups");
//clear out old consolidations
option.empty();
console.log("emptied");
////get consolidation and append to select options list
$.getJSON("/Reports/GetGroups/", { options: $("#Hidden_JobCodes").val() }, function (result) {
$.each(result, function (index, item) {
console.log(item.text);
option.append($("<option />").val(item.id).text(item.text));
});
});
option.multiselect('destroy');
option.multiselect('rebuild');
option.multiselect('refresh');
},
私が試したことの例として、破棄、再構築、および更新を残しました。これらすべてをあらゆる順序と組み合わせで使用しましたが、うまくいきませんでした。
Destroy は複数選択を標準の選択に「変更」しますが、その後何をしても、onchange イベントが存在する完全な複数選択呼び出しを使用するなど、複数選択を新しいオプションのリストに戻すことはできません。空か古いリストがあります。選択リストには、更新/再構築呼び出しを行うときに正しいオプションが表示されます。
前もって感謝します。T