实现分页时如何在select2中设置值

问题描述

我在select2中实现了分页,但是之后我无法在select2中设置值。

我的HTML代码

<input id="test" style="width:100%;" placeholder="type text,scroll for more results" />

JS代码

$('#test').val([2,10]).trigger('change');
$('#testbtn').click(function () {
alert($('#test').val());
});



function shuffle(str) {
  return str
    .split('')
    .sort(function() {
      return 0.5 - Math.random();
    })
    .join('');
}

function mockData() {
  return _.map(_.range(1,1000),function(i) {
    return {
      id: i,text: shuffle('str ing to shuffle') + ' ' + i,};
  });
}
(function() {
  // init select 2
  $('#test').select2({
    data: mockData(),placeholder: 'search',multiple: true,// query with pagination
    query: function(q) {
      var pageSize,results,that = this;
      pageSize = 20; // or whatever pagesize
      results = [];
      if (q.term && q.term !== '') {
        results = _.filter(that.data,function(e) {
          return e.text.toupperCase().indexOf(q.term.toupperCase()) >= 0;
        });
      } else if (q.term === '') {
        results = that.data;
      }
      q.callback({
        results: results.slice((q.page - 1) * pageSize,q.page * pageSize),more: results.length >= q.page * pageSize,});
    },});
})();

请找到JSFiddle链接作为工作示例。

注意:当我对select2中的查询部分进行注释时,绑定其工作正常。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)