【问题标题】:Aria attributes not be added to resultsAria 属性不会添加到结果中
【发布时间】:2016-04-26 04:00:08
【问题描述】:

我正在使用 select 2 版本 4.0.2 并创建了一个选择来通过 ajax 查找远程数据。

我得到的数据没问题,但是当渲染结果时,没有添加 aria-selected 属性,因此我无法选择任何选项。

我认为可能与 templateResult 和 templateSelection 有关,但我不知道需要更改什么。

jquery:

$("#select2").select2({
  theme: "bootstrap",
  ajax: {
    url: "/search/games",
    dataType: 'json',
    delay: 250,
    data: function (params) {
      return {
        q: params.term, // search term
        type: "suggest"
      };
    },
    processResults: function (data, params) {
      return {
        results: data.games,
      };
    },
    cache: true
  },
  escapeMarkup: function (markup) { return markup; },
  minimumInputLength: 3,
  templateResult: formatResult,
  templateSelection: formatSelection
});

function formatResult(game) {
  markup = "<p>" + game.name + "</p>";
  return markup;
};

function formatSelection(game) {
  markup = "<p>" + game.name + "</p>";
  return markup;
}

表格:

= form_for [:member,@event], :html => {:class => "formtastic form-horizontal"} do |f|
  %fieldset
    %div{:class => "control-group"}
      = f.label :game_id, :class => "control-label"
      %div{:class => "controls"}
        = f.select :game_id, "", {}, :class => "form-control"

【问题讨论】:

    标签: javascript jquery select2-rails select2


    【解决方案1】:

    结果在处理结果时,数据必须映射到 id 和 text 属性才能被识别:

    processResults: function (data, params) {
      return {
        results: jQuery.map( data.games, function( game ) {
          var arr = {id:game.name,text:game.name};
          return arr;
        }),
      };
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-06
      • 2018-07-17
      • 2020-03-22
      相关资源
      最近更新 更多