选择2:覆盖'容器'在formatSelection中

时间:2014-04-30 20:06:21

标签: javascript jquery jquery-select2

Select2的formatSelection函数提供了一个container,它是应该附加所选选项的DOM元素。

http://ivaynberg.github.io/select2/index.html#documentation

我将此作为多选实现使用,而且我无法找到覆盖默认容器的方法,即.select2-search-choice。我希望用户选择一个选项,并使其显示在输入字段本身以外的位置。

在查看Select2的来源和addSelectedChoice方法时,我不确定您是否真的能够更改容器。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我的临时解决方案:

在页面中添加一个类似的容器:

 <div class="select2-container select2-container-multi" style="width: 200px;">
     <ul class="select2-choices choicesOutput"></ul>
 </div>

这将是容纳所选选项的容器。

然后,在addSelectedChoice函数中,替换以下行:

choice.insertBefore( this.searchContainer );

用这个:

choice.appendTo("ul.choicesOutput");

然后,如果您不希望在未选择任何内容时输出框在那里,请将此样式添加到 CSS

ul:empty
{
    display: none;
}

如果您希望该位置是动态的,您可以跟踪调用链并传递参数以替换ul.choicesOutput