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

Tim*_*Tim 4 javascript ajax jquery json jquery-select2

到目前为止,我一直在使用 Select2 的正常 AJAX 方法来搜索和过滤服务器端的数据,但现在我有一个用例,我想在打开选择时通过 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" }
 ]
}
Run Code Online (Sandbox Code Playgroud)

数据正在传递到选择,但未实现查询过滤。

我正在努力理解 select2 文档,并且希望获得任何帮助或示例链接。

小智 5

尝试以下操作 - 将 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>
Run Code Online (Sandbox Code Playgroud)