2013-12-10 188 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