Javascript 选择2通过AJAX加载JSON结果集并在本地搜索
到目前为止,我一直在使用Select2的常规AJAX方法在服务器端搜索和过滤数据,但现在我有了一个用例,当select打开时,我希望通过AJAX检索所有结果,然后使用现在存储在本地的那些结果来搜索和过滤 我在网上搜寻了一些例子来说明如何做到这一点,我发现很多人说应该使用查询方法,而不是AJAX助手。不幸的是,我没有找到任何例子 到目前为止,我所管理的只是基本的:Javascript 选择2通过AJAX加载JSON结果集并在本地搜索,javascript,jquery,ajax,json,jquery-select2,Javascript,Jquery,Ajax,Json,Jquery Select2,到目前为止,我一直在使用Select2的常规AJAX方法在服务器端搜索和过滤数据,但现在我有了一个用例,当select打开时,我希望通过AJAX检索所有结果,然后使用现在存储在本地的那些结果来搜索和过滤 我在网上搜寻了一些例子来说明如何做到这一点,我发现很多人说应该使用查询方法,而不是AJAX助手。不幸的是,我没有找到任何例子 到目前为止,我所管理的只是基本的: $('#parent').select2({ placeholder: "Select Parent", minimumInp
$('#parent').select2({
placeholder: "Select Parent",
minimumInputLength: 0,
allowClear: true,
query: function (query) {
//console.log(query);
query.callback(data);
}
});
data = {
more: false,
results: [
{ id: "CA", text: "California" },
{ id: "AL", text: "Alabama" }
]
}
数据正在传递给select,但未实现查询筛选
我正在努力理解select2文档,如果您能提供帮助或链接到示例,我将不胜感激。尝试以下操作-将json数据预加载到局部变量中,并在准备就绪时将其绑定到select2对象
<script>
function format(item) { return item.text; }
var jresults;
$(document).ready(function() {
$.getJSON("http://yoururl.com/api/select_something.json").done(
function( data ) {
$.jresults = data;
$("#parent").select2(
{formatResult: format,
formatSelection: format,
data: $.jresults }
);
}
)
});
</script>
您必须实现过滤器服务器端,如下所述:嗨,克里斯蒂安,谢谢您的评论。我已经使用select2进行了服务器筛选。不幸的是,对于这个特定的用例,服务器过滤不是一个选项,这就是为什么我追求客户端过滤。我知道这是可以做到的。谢谢你的回答。是的,我最终得到了一个类似的解决方案,而不是调用外部格式化程序。您还可以执行以下操作:数据:{results:data,text:'myKey'}