在init不起作用后使用JSON填充select2

时间:2015-05-28 07:14:23

标签: jquery json jquery-select2 populate

我正在尝试使用JSON数组填充select2元素;但我无法得到它。

我有下一个数组:

data = [{"id":"Foo","text":"Foo"},{"id":"Bar","text":"Bar"}]

我将select2初始化如下:

$("#selectElement").select2();

我使用下一个代码填充:

$('#selectElement').select2('data', data, true);

但不起作用,我不知道为什么。有人可以帮帮我吗?

编辑:我需要在select2的init之后填充(我从AJAX接收JSON)

我的意图是使用其他select2的AJAX搜索的JSON填充我的问题的select2。

一切正常,除了填充(我在第一个格式的Selectiom方法中得到了这个JSON,但我不知道我可以用这个来填充第二个select2)

4 个答案:

答案 0 :(得分:9)

我发现您的代码与select2

中的代码存在一些差异

您的数据:

var data = [{"id":"Foo","text":"Foo"},{"id":"Bar","text":"Bar"}];

应该是:

var data = [{id:"Foo", text:"Foo"},{id:"Bar", text:"Bar"}]

您的人口代码:

$('#selectElement').select2('data', data, true);

应该是:

$('#selectElement').select2({data: data});

Select2的示例

var data = [
      { id: 0, text: 'enhancement' }, 
      { id: 1, text: 'bug' }, 
      { id: 2, text: 'duplicate' }, 
      { id: 3, text: 'invalid' }, 
      { id: 4, text: 'wontfix' }
];

$(".js-example-data-array").select2({
  data: data
});

<select class="js-example-data-array"></select>

答案 1 :(得分:0)

我刚刚在select2列表中发布了一个类似的问题,然后又回到了墙上。这就是我想出的:(“破坏”是帮助的提示)。首先,我清空选择,然后重置它。

    $("#id_category").on('change', function(){
           var cat = $(this).val();
           var url = '/breeds/lookup/?q='+cat;
           $.get(url, function(d){
               var idb = $("#id_breed").empty();
               idb.select2({data: d});
           }, "json");

        });

答案 2 :(得分:0)

window.plugins.sslCertificateChecker.check(
          successCallback,
          errorCallback,
          server,
          fingerprint);

     function successCallback(message) {
       console.log(message);
       // Message is always: CONNECTION_SECURE.
       // Now do something with the trusted server.
     }

     function errorCallback(message) {
       console.log(message);
     }

答案 3 :(得分:0)

如果您尝试默认显示预加载JSON的下拉列表,那么当您单击字段时,您希望下拉并显示填充数据,而无需键入单个字母,设置:

minimumInputLength:0

并且像魅力一样。 我希望这解决了你的问题,因为它确实是我的:)