2016-09-07 96 views
2

当前select2只在用户开始输入时才加载数据。我想用一些默认值预先加载下拉列表,所以一旦用户点击下拉列表中已经有一些值可供选择..我已经看过文档,但找不到任何东西。有没有人知道是否有解决方法或我可以做的事情来实现这一点。Select2预加载数据

谢谢

编辑:

$('#search-paint').select2({ 
       placeholder: "Search By:Manufacturer, Color Name, Color Code", 
       ajax: { 
        url: "/item/searchPaint", 
        dataType: "json", 
        delay: 250, 
        data: function (params) { 
         return { 
          q: params.term, 
          SprayType: $('#spray-type').val(), 
          page: params.page 
         }; 
        }, 
        processResults: function (data, params) { 
         params.page = params.page || 1; 
         return { 
          results: data.items.data, 
          pagination: { 
           more: (data.items.current_page * data.items.per_page) < data.items.total 
          } 
         }; 
        }, 
        cache: true 
       }, 
       escapeMarkup: function (markup) { 
        return markup; 
       }, 
       minimumInputLength: 1, 
       templateResult: formatRepo, 
       templateSelection: formatRepoSelection 
      }); 

我试着使用data设定预加载数据,但只加载第一目的,是调用选择方法。我也试过initSelection,但后来我发现它与我试图达到的目的不同。

+0

哪里是你的代码?你试过什么了? – Dekel

+0

嗨,我已经添加了一些代码和更多的信息 – Vilius

+0

在应用select2之前,你可以简单地在你的选择中有'option'标签 –

回答

-1

你可以做这样的事情

var data = []; 
$('#search-paint').select2({ 
    data:data, 
    escapeMarkup: function (markup) { 
     return markup; 
    }, 
    minimumInputLength: 1, 
    templateResult: formatRepo, 
    templateSelection: formatRepoSelection 
}); 
$.getJSON('/item/searchPaint',function(response){ 
    data=response; 
    $('#search-paint').select2('refresh'); 
});