weixin_33737774 2016-09-07 18:12 采纳率: 0%
浏览 63

Select2预载数据

Currently select2 only loads data once user starts typing. I want to preload the drop down with some default values, so once the user clicks on the drop down there are already some values to select from.. I've looked at the documentation but I couldn't find anything. Does anybody know if there is a workaround or something I could do to achieve this.

Thank you

Edit:

$('#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
            });

I've tried preloading data using the data setting, but it only loads the first object and is calls the select method. I've also tried initSelection but later I discovered it has a different purpose from what I'm trying to achieve.

  • 写回答

1条回答 默认 最新

  • weixin_33743880 2016-09-08 11:23
    关注

    You can do something like this

    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');
    });
    
    评论

报告相同问题?