当前位置: 首页 > 面试题库 >

select2:使用ajax获取json时,“文本未定义”

宁卓
2023-03-14
问题内容

json结果返回到select2时出现问题。我的json没有返回具有“文本”字段的结果,因此需要格式化结果,以便select2接受“名称”。

如果json中的文本字段设置为“文本”,则此代码有效,但是在这种情况下,我无法更改json结果的格式(我控制范围之外的代码)。

$("#e1").select2({                                
    formatNoMatches: function(term) {return term +" does not match any items." },
    ajax: { // instead of writing the function to execute the request we use Select2's convenient helper
    url: "localhost:1111/Items.json",
    dataType: 'jsonp',
    cache: true,
    quietMillis: 200,
    data: function (term, page) {
            return {
                q: term, // search term
                p: page,
                s: 15               
            };
        },
    results: function (data, page) { // parse the results into the format expected by Select2.          
        var numPages = Math.ceil(data.total / 15);                
        return {results: data.Data, numPages: numPages};
        }
    }      
});

我查看了文档,发现一些可以放入结果中的语句,例如

text: 'Name',

但我仍然收到“文本未定义”的信息。

谢谢你的帮助。


问题答案:

请注意,select2始终为{id,text}对,因此您需要同时指定两个

results: function (data, page) {
            var newData = [];
            _.each(data, function (item) {
                newData.push({
                    id: item.Id  //id part present in data 
                  , text: item.DisplayString  //string to be displayed
                });
            });
            return { results: newData };
        }
    },


 类似资料:
  • 问题内容: 好的,我确定这里有一个简单的设置错误,但我不是100%是错的。 因此,我尝试使用Select2 AJAX方法作为用户搜索数据库并选择结果的方式。通话本身返回了结果,但是不允许我从列表中选择答案。它似乎也不允许您在悬停或上/下箭头上“选择”它。因此,事不宜迟,这是我的代码: index.html select.js JSON回应 一切似乎都能正确输入,但是我无法真正选择答案并将其输入框中

  • 问题内容: 我如何通过带有角的ajax获取json数据?我尝试了很多,但是我的代码无法正常工作。我的代码: 问题答案: 你这样尝试过吗?

  • 本文向大家介绍Select2在使用ajax获取远程数据时显示默认数据的方法,包括了Select2在使用ajax获取远程数据时显示默认数据的方法的使用技巧和注意事项,需要的朋友参考一下 假设我需要在我的select2中默认添加一个之前从服务器上获取过的数据,通过以下方法实现。实测可行~ 以上代码其实就是将class="selecter"的select内容进行重新定义,最后提醒select2更新。 这

  • 问题内容: 无法使AJAX正常工作!我在网站上有一个字幕,可以正常使用!但是我希望它在文本文件中找到字幕的文本,并且希望它读取文本文件中的文本(一行),并将其分配给名为的变量,该变量是脚本中的全局变量标签。 当我运行网站(本地IIS)时,字幕文本为:“未定义”(不带引号)。 为什么不将文本分配给变量? 编辑: 一百万感谢@kuncajs,因为他指出我忘了调用该函数!:)固定!感谢其他人! 问题答案

  • 在这个论坛线程之后,我怀疑这可能是由于缺少到openssl库文件的链接(在针对不同环境进行编译时,项目指向不同的lib文件夹)。因此,我在编译器中搜索了ARM(arm-arago-linux-gnueabi)中所有与“OpenSSL”相关的文件,这些文件包含在。So所在的同一个文件夹中;同样的错误。然后我怀疑lib本身有其他依赖项,而这些依赖项不在path_to_libs中,所以我执行了,然后在,

  • Ajax 全称“Asynchronous JavaScript and XML”,译为“异步 JavaScript 和 XML”,程序员们习惯称之为“阿贾克斯”,通过 Ajax 我们可以异步在服务器与客户端之间传递数据。在 Ajax 中,普遍使用 JSON 作为传输数据的格式。 一般情况下,我们可以通过 JavaScript 来发送 Ajax 请求,并接收响应的信息。下面通过一个示例来演示一下(有