0

スクリプトに次のコードを含めることで、配列の結果を取得できます

   $.ajax({
      url: "/search",
      dataType: 'json',
      type: "GET",
      data: {
        query: "test",
      },
      success:function(result){
        console.log(result);
      }
    });

しかし、select2-railsでajaxを使用しようとすると

$(".select2").select2({
  ajax: {
    url: "/search",
    dataType: 'json',
    type: "GET",
    delay: 250,
    data: { query: "test" },
    processResults: function (data) {
      console.log(data);
      return {
        results: data.results,
      };
    },
    cache: true
  },
  theme: "bootstrap",
  escapeMarkup: function (markup) { return markup; }, 
  multiple: true,
  templateResult: TemplateResult,
  templateSelection: TemplateSelection,
  placeholder: "Type to search",
});

コンソールは常に何もないため、select2内でajax GETリクエストを作成できないようです。

select2 は、事前定義されたデータを使用したときに魅力的に機能するため、アセットに含まれる部分で問題が発生することはありません

var data = [{ id: 0, name: 0 }, { id: 1, name: 1 }];

$(".select2").select2({
  data: data,
  theme: "bootstrap",
  escapeMarkup: function (markup) { return markup; }, 
  multiple: true,
  templateResult: TemplateResult,
  templateSelection: TemplateSelection,
});
4

1 に答える 1

0

スクリプト内で、ドキュメントの準備ができたときに選択イベントをトリガーする必要があります

$(document).ready(function () { ... }

次のようなselect要素を使用して監視要素を宣言します

<select class="select2" multiple="multiple" name="search[item_ids][]"
 id="search_item_ids" />

隠しフィールドを使用しない

<%= f.hidden_field :item_ids, multiple: "multiple", class: "select2" %>
于 2016-10-01T15:20:57.010 に答える