是否可以使用Select2 jQuery插件对组合框容器进行设计?我可以成功设置出现自动完成选择的下拉菜单菜单,但不能在其中输入文本的容器。这是我在做什么:如何设计一个jQuery Select2组合框的容器?
$(document).ready(function() {
$("#combo").select2({
data:[{id:0,text:'One'},{id:1,text:'Two'}],
multiple: true,
createSearchChoice: function (term) {
return { id: term, text: term };
},
containerCss: 'container',
dropdownCssClass: 'dropdown',
containerCss: {
background: 'green'
}
});
});
<input type="hidden" id="combo" style="width:350px" />
#combo {
background: green;
}
.container {
background: green;
}
.dropdown {
background: red;
}
容器应该是绿色的,但事实并非如此。这是一个fiddle。
编辑:
我的文档页面上发现的网站(这是比较全面的),我试图做的(隐藏输入域动态加载选项)的种类的每个实例具有相同的标准风格,就像我的例子小提琴。但是,源自select元素的版本具有圆角等。如果这意味着您在使用隐藏输入时无法对容器进行样式设置,那么它似乎是一个奇怪的限制。
EDIT2:
@emmanuel已经提供了解决方案,但因为我的边界半径后实际上,有更多的做才能得到它正常工作。在所有角落设置半径后,打开下拉菜单可以在下拉列表顶部和容器底部之间看到圆角,这有点难看。你可以做这样的事情来解决这个问题:
$('ul.select2-choices').on("select2-open", function() {
$('ul.select2-choices').css({
'border-bottom-left-radius': '0px',
'border-bottom-right-radius': '0px',
});
});
$('ul.select2-choices').on("select2-close", function() {
$('ul.select2-choices').css({
'border-bottom-left-radius': '5px', // or whatever
'border-bottom-right-radius': '5px', // or whatever
});
});
我认为这将导致一个问题,不过,任何其他选择二组合框在同一页上可见。
这其实不是背景颜色我很感兴趣,它的边界半径,但是,这似乎是工作压力太大(不需要重要)。 – RTF 2014-09-05 20:41:07
请检查我编辑的答案。 – emmanuel 2014-09-05 20:42:31