当页面加载时,我将一些数据加载到选择框中,并使用ajax请求返回之前选择的json字段。
如何通过ajax请求实现select2设置某些项目?
我的json只返回一个id和文本。
我的ajax请求,但还没有任何功能:
// Get permissions
$.ajax({
type: "Get",
url: "/Files/GetFolderPermissions",
data: { folderId: folderId }
}).success(function (data) {
// Do stuff
//$('#EditFolder #FolderActionModel_ValueRole')
}).error(function () {
alert('Ajax call is mislukt, kon de rollen niet ophalen');
}).always(function () {
hideLoadingScreen();
});
答案 0 :(得分:2)
以下是我为你做的一些例子 这取决于你的select2格式
$("#yourSelect2Selector").select2({
id: function(e) {return e.name;},
placeholder: "Place holder is here",
allowClear: true,
width: 'resolve',
initSelection : function (element, callback) {callback([]);},
formatResult: function(item) {return item.name;},
formatSelection: function(item) {
return item.name;
}
});
}
使用json对象设置选择
$("#yourSelect2Selector").select2("data", {name: 'My name is ...'});
或将数据作为字符串
$("#yourSelect2Selector").select2("data",'Your data is here')
答案 1 :(得分:0)
// Get permissions
$.ajax({
type: "Get",
url: "/Files/GetFolderPermissions",
data: {
folderId: folderId
},
dataType:"JSON"
}).success(function (data) {
var id = data.id
$('#select2 option[value="'+id+'"]').attr('selected','selected');
}).error(function () {
alert('Ajax call is mislukt, kon de rollen niet ophalen');
}).always(function () {
hideLoadingScreen();
});
答案 2 :(得分:0)
最终的结果实际上相当容易,我在文档中找不到如何通过ajax调用自动选择值。
编写代码5分钟,找到解决方案大约3个小时..
您可以简单地为select2提供需要选择的项目数组。
所以我的情况是:
var json = $.parseJSON(data);
var selectedValues = [];
$.each(json, function(bb) {
selectedValues.push(json[bb].Id);
});
$(".search").select2('val', selectedValues);