如何混合选择2使用初始选择加载远程数据

时间:2016-01-29 00:19:42

标签: javascript jquery-select2 select2

https://select2.github.io/examples.html#data-ajax

对于select2,我想:

  1. 列出一些初始选择,因此对于小列表,我们可以直接选择它。
  2. 搜索远程以获取多个/更多选择。
  3. 但是,我似乎无法同时提供ajaxdata参数。

    有什么建议吗?感谢。

    已添加代码段

    function installShopSelect2() {
        var url = "/ajax/brandEnterprise/findShops.mapi";
        "use strict";
        $('#shopid').select2({
            ajax: {
                type: "GET",
                url: url,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                delay: 250,
                //async: false,
                data: function (params) {
                    return {
                        keyword: params.term,
                        besId: selectedBes,
                        page: params.page
                    };
                },
                processResults: function (data, params) {
                    // parse the results into the format expected by Select2
                    // since we are using custom formatting functions we do not need to
                    // alter the remote JSON data, except to indicate that infinite
                    // scrolling can be used
                    params.page = params.page || 1;
    
                    return {
                        results: data,
                        pagination: {
                            more: (params.page * 30) < data.total_count
                        }
                    };
                },
                cache: true
            },
            escapeMarkup: function (markup) {
                return markup;
            },
            //data: $.getJSON(url, {besId: selectedBes, keyword: ''}, function (data) {
            //    return {results: data};
            //}),
            placeholder: "--Please search--",
            minimumInputLength: 2,
            allowClear: true
        });
    }
    

1 个答案:

答案 0 :(得分:1)

我解决这个问题的方法是设置minimumInputLength = 0,编写一个自定义ajax传输器来检查搜索项的长度,当它等于0时,我用固定的默认值调用成功回调,否则如果大于0我只需执行ajax调用并返回响应。