2016-01-21 3 views
4

Настройка Выберите для 'disabled' не отключает элемент. Пользователь все еще может щелкнуть по элементу Select2, и откроется окно с параметрами. Вот отключенный элемент управления, который был открыт щелчком по тексту, а не кнопкой со стрелкой вниз.Kartik/Krajee Select2 не отключен

Disabled Control:

Вот мой код:

<?= $form->field($model, 'billing_currency_id')->widget(Select2::className(), [ 
'data' => BillingCurrency::listIdCodes('','',true), 
'disabled' => true, 
'options' => ['disabled' => true,], 
'pluginOptions'=>[ 
    'allowClear'=>false, 
    'dropdownAutoWidth'=>true, 
    'disabled' => true, 
], ]); ?> 

При нажатии на кнопку со стрелкой вниз держит контроль над закрытым, но при нажатии на текстовой области управления открывает окно настроек.

ОБНОВЛЕНИЕ Найдена моя собственная ошибка - см. Ответ ниже.

ответ

2

Я допустил ошибку - у меня есть какой-то пользовательский JS-код на сайте, который открывает Select2, когда он получает фокус. Мой код вызывал проблему.
Мой пользовательский код был создан для преодоления ограничения Select2, при котором он не открывается автоматически, когда пользователь входит в элемент управления. Я исправил код. Когда Select2 получает фокус либо от вкладки, либо от клика, элемент управления открывает всплывающее окно UNLESS, которое отключено. (Раньше у меня не было проверки для отключенного атрибута.)

$(document).on('focus', '.select2', function() { 
    var elSelect = $(this).siblings('select'); 
    if (elSelect.is('[disabled]')==false) { 
     elSelect.select2('open'); 
    } 
}); 
1

Отключение выбора описана в официальной документации в Examples (Disabled mode) section:

Выбор2 ответит на атрибут инвалидов на <select> элементов. Вы также можете инициализировать Select2 с отключенным: true, чтобы получить тот же эффект .

Что касается расширения Картик, вы можете установить 'disabled' => true под options раздел как это:

'options' => ['disabled' => true], 

Я проверил только, чтобы быть уверенным, и она работает.

+0

Если вы нажмете на текст элемента, всплывающее окно откроется? – zDaniels

+0

@readtheBook Нет, он полностью отключен, и знак остановки появляется при зависании. – arogachev