Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript select2使用ajax加载数据无法选择任何选项_Javascript_Jquery_Ajax_Jquery Select2_Jquery Select2 4 - Fatal编程技术网

Javascript select2使用ajax加载数据无法选择任何选项

Javascript select2使用ajax加载数据无法选择任何选项,javascript,jquery,ajax,jquery-select2,jquery-select2-4,Javascript,Jquery,Ajax,Jquery Select2,Jquery Select2 4,我有以下代码(javascript): $('cbxConnections')。选择2({ 最小输入长度:0, 多重:假, allowClear:是的, 占位符:{ 文本:“@Diccionario.Connections”, id:“@Diccionario.Connections” }, 阿贾克斯:{ url:'@url.Action(“GetActiveConnections”,“Admin”), 数据类型:“json”, 类型:'post', 数据:函数(参数){ 返回{ q:参数术语

我有以下代码(javascript):

$('cbxConnections')。选择2({
最小输入长度:0,
多重:假,
allowClear:是的,
占位符:{
文本:“@Diccionario.Connections”,
id:“@Diccionario.Connections”
},
阿贾克斯:{
url:'@url.Action(“GetActiveConnections”,“Admin”),
数据类型:“json”,
类型:'post',
数据:函数(参数){
返回{
q:参数术语
};
},
processResults:函数(数据,页面){
返回{
结果:数据
};
}
},
转义标记:函数(标记){
返回标记;
},
templateResult:函数(响应){
返回“”+响应。名称+“”;
},
模板选择:函数(响应){
返回response.Id;
},
id:功能(连接){
控制台日志(连接);
}
});
对于服务器端,我使用ASP MVC 4。 选择使用ajax获取数据并呈现选项,但此选项不可选。 在阅读其他文章时,他们描述了如何使用id函数,但这个函数在我使用的select2.4版本上似乎没有出现

我在上显示的文档中遵循ajax的示例
“加载远程数据”

如果您的ajax响应没有idtext属性,您应该在客户端修复它们

这是4.0版的要求(不知道为什么)


谢谢帮了大忙。谢谢你的解释。我想要的完美。非常感谢。可能是重复的
$('#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);
    }
});
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
                    }
                };
            }

 }