2013-12-10 193 views
0

我创造了一些默认选择2的行为:每个选择是选择2扩展选择二默认

$('select').not('.notSelect2').select2({ 
    width: "150px", 
    allowClear: true, 
    placeholder: "EMPTY" 
}); 

,现在我想改变设置一些输入:

function setSelect2Width(control, width) { 
    $.extend(true, control.select2.defaults, { width: width }); 
} 

此代码为选择2什么也不做。如何更改默认设置?

jsfiddle.net/JpvDt/389

+0

您可以创建一个的jsfiddle你做了什么? – kmas

回答

1

默认值正是顾名思义;未指定其他值时使用的值。您正在初始化后编辑默认值,因此该值不会用于这些选择(它们将仅用于没有指定宽度的新选择)。

所以不是这样做:

function setSelect2Width(control, width) { 
    $(control).width(width).select2(); 
} 
+0

这个问题很常见。 “宽度”在这里不是很好的例子,因为它有方法。有一些重要字段不能以这种方式进行更改:minimumInputLength,url。 –

+1

更改这些设置的唯一方法是使用新选项再次调用select2()。不幸的是,从select2实例中获取所有选项是不可能的,因此您需要自己存储它们。我做了一个改变minimumInputLength的例子:http://jsfiddle.net/F59AV/ – Sander