选择2显示未定义使用initSelection ajax调用

Select 2 displaying undefined using initSelection ajax call

本文关键字:initSelection ajax 调用 显示 未定义 选择      更新时间:2023-09-26

我试图使用远程ajax调用和initSelection函数预加载一个条目到Select2。我的问题似乎与这个问题相似,但是两个答案都不适合我。

调用工作并以json格式返回正确的结果,问题似乎是回调没有以正确的格式发送数据对象。

j("#selectElement").select2({
    placeholder: "Placeholder text",
    multiple: false,
    minimumInputLength: 1,
    ajax: {
        url: "/getfiles",
        dataType: 'json',
        data: function (term, page) {
            return {
                q: term //search term
            };
        },
        results: function (data, page) {
            return data;
        }
    },
    initSelection: function(element, callback) {
        return j.getJSON("/getfiles?id=" + (element.val()), null, function(data) {
            if (j.isFunction(callback)) {
                //alert(JSON.stringify(data, null, 4));
                return callback(data);
            }
        });
    }
});

当我警告数据对象时,它返回以下数据:

{
"results": [
    {
        "id": "1",
        "text": "Name of the file"
    }
],
"more": "false"

}

最终结果是文本"undefined"被加载到select2输入中。

我将非常感谢您的帮助。

蒂姆

解决方案是像这样格式化回调数据

return callback(data.results[0]);

功劳归于这个问题/答案:Select2和initSelection回调