2013-12-10 3 views
0

я создаю некоторые по умолчанию ВЫБ.2 поведение: каждый выбор является Выбор2Продлить Select2 по умолчанию

$('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 невозможны, поэтому вам нужно их хранить самостоятельно. Я сделал пример с изменением минимальной длины ввода: http://jsfiddle.net/F59AV/ – Sander

Смежные вопросы