javascript - 使用ajax的select2加载数据无法选择任何选项

标签 javascript jquery ajax jquery-select2 jquery-select2-4

我有以下代码(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 响应没有 idtext 属性,您应该在客户端修复它们

这是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/

相关文章:

javascript - 如何修复 "router no longer defaults the history prop to hash history"警告?

Javascript const 在 chrome 开发控制台中显示为未定义而不是未定义

javascript - 清空 div 并重新附加内容奇怪的行为

javascript - 通过数据属性查找元素

javascript - 如何实现类似于 Facebook 的面包屑导航?

ajax - WebAPI - 可以用来注销用户吗?

javascript - 如何获取通过 Node.js 上传到 Azure 存储的文件的 URL?

javascript - 尝试从 YouTube 获取搜索结果时出现错误 "Your client has issued a malformed or illegal request"

javascript - 如何借助 javascript 查找打印机列表?

php - 登录到ajax加载首页