我有以下代码(javascript):
$('#cbxConnections').select2({
minimumInputLength: 0,
multiple: false,
allowClear: true,
placeholder:{
text:"@Diccionario.Connections",
id:" @Diccionario.Connections"
},
ajax:{
url:'@Url.Action("GetActiveConnections","Admin")',
dataType: 'json',
type:'post',
data:function(params){
return {
q: params.term
};
},
processResults: function(data,page){
return {
results: data
};
}
},
escapeMarkup: function (markup) {
return markup;
},
templateResult: function(response){
return '<div>'+response.Name+'</div>';
},
templateSelection: function(response){
return response.Id;
},
id: function(connection){
console.log(connection);
}
});
对于服务器端,我使用的是 ASP MVC 4。 选择使用 ajax 获取数据并呈现选项,但此选项不可选择。 阅读其他帖子,他们描述了使用 id 函数,但是这个函数在我使用的 2.4 版本的 select2 上似乎消失了
我正在关注 github 上显示的文档中的 ajax 示例 “加载远程数据”
最佳答案
如果您的 ajax 响应没有 id 和 text 属性,您应该在客户端修复它们
这是4.0版本的要求(不知道为什么)
ajax: {
processResults: function (data, params) {
params.page = params.page || 1;
// you should map the id and text attributes on version 4.0
var select2Data = $.map(data.result.data, function (obj) {
obj.id = obj._id.$id;
obj.text = obj.name;
return obj;
});
return {
results: select2Data,
pagination: {
more: data.result.more
}
};
}
}
关于javascript - 使用ajax的select2加载数据无法选择任何选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29035717/