Javascript 如何混合选择2加载远程数据和初始选择

Javascript 如何混合选择2加载远程数据和初始选择,javascript,jquery-select2,select2,Javascript,Jquery Select2,Select2,对于select2,我想: 列出一些初始选择,因此对于小列表,我们可以直接选择它。 在远程搜索长/多个选择。 但是,似乎我不能同时提供ajax和数据参数 有什么建议吗?谢谢 添加了代码段 function installShopSelect2() { var url = "/ajax/brandEnterprise/findShops.mapi"; "use strict"; $('#shopid').select2({ ajax: {

对于select2,我想:

列出一些初始选择,因此对于小列表,我们可以直接选择它。 在远程搜索长/多个选择。 但是,似乎我不能同时提供ajax和数据参数

有什么建议吗?谢谢

添加了代码段

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
    });
}

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

是否尝试设置allowClear:false?否,这对我来说不起作用,因为在大多数情况下,访问远程数据的速度足够快,以至于我不明白为什么你要尝试启动我复制的泵,并在我的盒子上运行他们的样本,连接到他们的数据源并几乎立即取回数据。我已经添加了代码片段。除非用户键入至少两个字符,否则列表为空。第一:对于像英语这样的语言来说,这个要求可能微不足道。但对于像汉语这样的语言来说,这很麻烦。用户必须使用IME输入法编辑器输入两个汉字,即两次以上的击键。如果幸运的话,我们可以直接从初始列表中选择项目,特别是对于短列表。第二:初始空列表可能误导用户。他们会咆哮,没什么,没什么。。。你能粘贴一个代码样本吗?这听起来正是我需要的。