如果数据源是远程的,select2无法搜索

时间:2013-10-04 13:47:32

标签: jquery-select2

我正在使用select2选择框来填充并显示一些服务器数据。大多数工作正常,因为我能够得到结果并填充组合框。但是当我在搜索框中输入时,选择不会缩小最接近的匹配范围。

enter image description here 我发现问题是因为后端URL不支持基于提供的字符串进行搜索,而select2根据用户输入的文本不断向后端发出多个搜索请求。遗留后端代码一次性返回结果,第一次填充到组合框中。

我的问题是,如何在不进行多次Ajax调用的情况下将选择框聚焦到最接近的匹配结果。我希望搜索发生在已经获取的结果中。

感谢任何帮助我解决这个问题的人。

我的ajax电话如下,如果这有帮助...

select2: {      
  placeholder: 'Select Next Plan Id',
  allowClear: true,
  id: function (item) {
    return item.id;
  },
ajax: {
  type: 'GET',
  dataType: "jsonp",
  url: "http://172.16.7.248:8480/app/gui?action=1&type=11",
  data: function (term, page) {
    return { search: term };
  },
  results: function (data, page) {
    return { results: data.aaData };
  },
  success : function(data, status, xhr) {
    var html = "<option value=''>None</option>";
    $.each(data.aaData, function(i, item) {
        html += "<option data=" + JSON.stringify(item.id) + " value=" + item.id + "'>" + item.id + "</option>";                 
    });
        $('#nextplanid').html(html);

        self.prop('data-loaded', 'true');
    },
    error : function(data, status, xhr) {
    }
},

formatResult: function (item) {
  return item.id;
},
formatSelection: function (item) {
  return item.id;
},
initSelection: function (element, callback) {
    return $.get('/getText', { query: element.val() }, function (data) {
    callback(data);
  });
}       

},

0 个答案:

没有答案