无法使用ajax填充Select2 v4.x.

时间:2015-08-29 16:15:51

标签: jquery ajax jquery-select2 jquery-select2-4

我使用最新版本的select2(版本4),我设法通过AJAX发出请求,我已经检查了响应是否正常。但是,选择不会使用搜索中找到的结果填充其选项。也许我错过了一些东西,但我不知道,这里是代码:

<script type="text/javascript">
  $("#cliente").select2({
    //allowClear: true,
    ajax: {
      url: "<%= clientes_getclientes_path(format: 'json') %>",
      dataType: 'json',
      delay: 250,
      data: function (params) {
        return {
          q: params.term, // search term
          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
        return {
          results: data.clientes
        };
      },
      cache: true
    },
    //escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
    minimumInputLength: 3,
    theme: 'bootstrap'
  });
</script>

1 个答案:

答案 0 :(得分:1)

您应该重命名您的JSON,以便它返回id而不是cod_ctetext而不是nom_cte,或者(效率较低),使用映射:

return {
  results: $.map(data.clientes, function (obj) { return { id: obj.cod_cte, text: obj.nom_cte };})
};