我在插入Select2()v4.0时遇到问题。我想从boostrap加载mi Modal中的远程数据并编辑此值。我的代码是:
HTML
<select id="txtAsistentes" class="js-example-basic-multiple" multiple="multiple" style="width: 100%" />
JS
ControlToSelect2Format: function (controlId,ocultos) {
var control = "#" + controlId;
$(control).select2({
minimumInputLength: 2, // minimumInputLength for sending ajax request to server
width: 'resolve', // to adjust proper width of select2 wrapped elements
tags: false,
allowClear: false,
multiple: true,
ajax: {
url: "/Home/SearchUserAD/",
dataType: 'jsonp',
data: function (params) {
return {
term: params.term, // search term
page: params.page
};
},
processResults: function (data, page) {
return { results: data.Results };
}
},
initSelection: function (element, callback) {
var id = $("#hdReservaId").val();
if (id !== "") {
$.ajax({
url: "/Home/GetAsistentesReserva/",
dataType: "jsonp",
data: { idReserva: id }
}).done(function (data) {
callback(data.Results);
})
}
}
});
}
InitSelection可以,因为我使用了“ select2.full.min.js”,但是问题是当我尝试编辑InitSelection预加到select2控件的值时。我丢失了值并清除了控件。
如何在不删除值的情况下编辑初始值?
我的问题是,当我想编辑以前创建和保存的数据时。我不知道如何使用select2()
进行编辑谢谢!
最后,我的解决方案是将这段代码放在select()初始化之后,并删除代码initSelection:
var id = $("#hdReservaId").val();
if (id !== "") {
$.ajax({
url: "/Home/GetAsistentesReserva/",
dataType: "jsonp",
data: { idReserva: id }
}).then(function (data) {
data.Results.forEach(function (entry) {
//alert(entry);
var $option = $('<option selected>' + entry.text + '</option>').val(entry.id);
$(control).append($option).trigger('change');
});
$(control).trigger('change');
});
}
如果已打开模态进行编辑,则调用ajax以获取编辑数据。使用那种方法,我可以毫无问题地编辑来自select2()multiselect的数据。
谢谢您的支持!
您能张贴完整的相应HTML吗?那会很有帮助。预先感谢。