0

我使用 select2 (v4) 并使用远程数据。响应是正确的,但 processResults 函数不调用并且 select2 不显示任何内容。

 $('#country').select2({
     placeholder: 'Select a country',
     minimumInputLength: 3,
     ajax: {
         url: 'https://battuta.medunes.net/api/country/search/?key=xx',
         dataType: 'json',                        
         processResults: function(data) {
            var results = [];
            $.each(data, function (index, country) {
                 results.push({
                     id: country.code,
                     text: country.name
                 });
             });

             return {
                results: results
             };                            
         },                        
         data: function(params) {
            var query = {
               country: params.term
            }

            return query;
        }
     },
     width: 'resolve',
  }); 

来自 ajax 请求的示例响应:

[
  {"name": "Indonesia", "code": "Id"}, 
  {"name": "French Polynesia", "code": "pf"}
]
4

1 回答 1

1

嗨,下面是它的选择代码

$('#country').select2({
     placeholder: 'Select a country',
     minimumInputLength: 3,
     ajax: {
         url: function(param){return 'https://battuta.medunes.net/api/country/search/'},
         dataType: 'jsonp' ,
         data: function (params) {


      var query = {
       country: params.term,
      // callback :"?",
       key:"00000000000000000000000000000000" //put your key here 
      }
//this is important to make sure no extra params are added becuase the api rejects anything that has wrong params
      // Query parameters will be ?city=[term]&callback=?,key=
      return query;
    },
          processResults: function(data) {
            var results = []; 
            $.each(data, function (index, country) {
                 results.push({
                     id: country.code,
                     text: country.name
                 });
             });

             return {
              "results":results
             };                            
         },

     },

     width: 'resolve',
  }); 

这是我展示工作国家搜索的小提琴https://jsfiddle.net/shyamjoshi/jbfrnqLd/37/

于 2018-06-06T09:47:30.467 回答