首页 > 解决方案 > 如何在分页版本:4时设置jquery select2的选定值?

问题描述

使用分页时,是否有任何选项可以在 select2 中设置选定值?

如果没有分页设置,选择的值运行良好。

$("#selectId").val('value').trigger("change.select2"); 

但是,当我在版本 4 中尝试使用分页时,它不起作用。

我正在使用列表填充 select2 数据。

// init select 2
var pageSize = 10;

jQuery.fn.select2.amd.require(["select2/data/array", "select2/utils"],
    function (ArrayData, Utils) {
        function CustomData($element, options) {
            CustomData.__super__.constructor.call(this, $element, options);
        }

        Utils.Extend(CustomData, ArrayData);

        CustomData.prototype.query = function (params, callback) {

            var results = [];
            if (params.term && params.term !== '') {
                results = _.filter(list, function (e) {
                    return e.text.toUpperCase().indexOf(params.term.toUpperCase()) >= 0;
                });
            } else {
                results = list;
            }


            var data = {};
            data.results = results.slice((params.page - 1) * pageSize, params.page * pageSize);
            data.pagination = {};
            data.pagination.more = params.page * pageSize < results.length;
            //data.minimumResultsForSearch = list; 
            callback(data);
        };
        $("#" + controlId).select2({
            ajax: {},
            dataAdapter: CustomData
        });
    });

到目前为止我尝试过的不同类型的方法:

//this is used in version -4 
$("#selectId").select2('data', { id: value, text: text });

// Without pagination
$("#selectId").val(value).trigger("change.select2"); 
or
$("#selectId").val(value).trigger("change"); 

// For may be older version
$('#selectId').select2('data', {id: value, a_key: text});

//another approach
$("#selectId").val(value);
$("#selectId").select2().trigger('change');

任何帮助将不胜感激

标签: jqueryjquery-select2jquery-select2-4

解决方案


推荐阅读