Select2通过AJAX加载JSON结果集并在本地搜索

时间:2014-08-16 07:44:18

标签: javascript jquery ajax json jquery-select2

到目前为止,我一直在使用Select2的普通AJAX方法搜索和过滤数据服务器端,但现在我有一个用例,我想在打开select时通过AJAX检索所有结果,然后使用这些结果(现在存储)本地)搜索和过滤。

我已经在网上搜索了如何执行此操作的示例,我发现很多人都说应该使用Query方法而不是AJAX助手。不幸的是我没有找到任何例子。

到目前为止,我所管理的只是基本的:

$('#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文档,并希望获得任何帮助或链接到示例。

1 个答案:

答案 0 :(得分:4)

尝试以下操作 - 将json数据预加载到局部变量中,并在准备好时将其绑定到select2 object

<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>