2014-04-30 56 views
2

Select2的formatSelection函数提供了一个container,它是所选选项应该追加到的DOM元素。Select2:覆盖格式选择中的'container'

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

我用这个作为一个多项选择执行,我没能找到一种方法来替代默认的容器,这是.select2-search-choice。我希望用户选择一个选项并让它出现在输入字段本身以外的位置。

在看Select2的来源和addSelectedChoice方法,我不确定你实际上能够更改容器。任何帮助是极大的赞赏。

+0

我正在尝试做同样的事情。为了记录,项目所有者(不足)解决了此问题[https://groups.google.com/forum/#!topic/select2/6AB06BK8BkY] –

+0

感谢您指出'addSelectChoice'函数;我在源头上做了一些攻击来完成我想要的东西,但几乎没有可共享的解决方案(还)。 –

回答

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

+1

我很欣赏你在这里的工作,我认为它可能有效(还没有测试过),但是因为你必须修改源代码,所以我不打算接受这个答案。希望你明白为什么。在您的实施中祝您好运! – brianrhea

+0

您可能想修改您的问题,以表明您只查找不需要修改源的答案。 –

+0

我还在寻找一个不修改源代码的选项。 – ebbflowgo