我的应用程序使用select2来显示通过Ajax调用检索的名称列表.
它使用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; } });
我希望你觉得有帮助.