微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 在Select2中获取和缓存结果

我的应用程序使用select2来显示通过Ajax调用检索的名称列表.
它使用select2 ajax功能.

但是问题在于,每当我在select2输入上键入时,select2都会提取项目.
我不想每次用户输入时都提取.我想在初始加载select2时获取项目,然后使用相同的数据,即使他们输入select2输入.

我该如何实现?

PS:我在Ajax中看到缓存标志,但是我认为它基于URL缓存结果.
用户在select2输入上键入时,它不会停止提取数据.

解决方法

使用ajax选择2加载数据,缓存就地.
$("#selIUT").select2({
            cacheDataSource: [],placeholder: "Please enter the name",query: function(query) {
                self = this;
                var key = query.term;
                var cachedData = self.cacheDataSource[key];

                if(cachedData) {
                    query.callback({results: cachedData.result});
                    return;
                } else {
                    $.ajax({
                      url: '/ajax/suggest/',data: { q : query.term },dataType: 'json',type: 'GET',success: function(data) {
                        self.cacheDataSource[key] = data;
                        query.callback({results: data.result});
                      }
                    })
                }
            },width: '250px',formatResult: formatResult,formatSelection: formatSelection,dropdownCssClass: "bigdrop",escapeMarkup: function (m) { return m; } 
        });

我希望你觉得有帮助.

原文地址:https://www.jb51.cc/js/153043.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐