0

我正在使用最新版本的 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>
4

1 回答 1

1

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

return {
  results: $.map(data.clientes, function (obj) { return { id: obj.cod_cte, text: obj.nom_cte };})
};
于 2015-08-29T18:18:47.890 回答