【问题标题】:Select2 Templating <span>text</span> in selection renderSelect2 在选择渲染中模板化 <span>text</span>
【发布时间】:2016-01-05 00:36:15
【问题描述】:

我已经选择了风格化。我不是那么专业,我只是在学习,我还不能单独解决这个问题。 我使用 select2 并为选择表单找到了最可接受的类型。我试图了解出了什么问题,但我做不到。我想要这样的选择,它显示带有文本的跨度,而不仅仅是文本。就像它在 pic#1 上一样。但我一直只得到没有颜色标记的文本 - pic#2。

enter image description here

我的代码是:

<div class="fieldset fieldset-1">
   <label for="color">Choose color</label>
   <select name="color" class="color-choose">                             
      <option value="grn">Green</option>
      <option value="blu">Blue</option>
      <option value="brn">Brown</option>
      <option value="blk">Black</option>
      <option value="red">Red</option>
      <option value="yel">Yellow</option>
      <option value="wht">White</option>                                  
    </select>
 </div>

和JS代码:

function formatState (state) {
  if (!state.id) { return state.text; }
  var $state = $(
    '<span class="color-element color-' + state.element.value + '">' + state.text + '</span>'
  );
  return $state;
};

$(".color-choose").select2({
  templateResult: formatState
});

所以我得到了这样的结果:enter image description here

请帮我解决它!将不胜感激!

【问题讨论】:

    标签: javascript html select select2


    【解决方案1】:

    您只是为结果设置模板(使用templateResult),而不是为选择设置模板。 Select2 允许您为选择和结果使用不同的模板(请参阅the AJAX example),因此您必须使用templateSelection 选项为选择设置渲染器。

    $(".color-choose").select2({
      templateResult: formatState,
      templateSelection: formatState
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-28
      相关资源
      最近更新 更多