Kartik / Krajee Select2未被禁用

时间:2016-01-21 02:44:53

标签: php yii2 select2

设置选择以禁用'不会禁用该元素。用户仍然可以单击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 个答案:

答案 0 :(得分:2)

我犯了一个错误 - 我在网站上有一些自定义JS代码,当它获得焦点时会打开Select2。我的代码导致了报告的问题 创建我的自定义代码是为了克服Select2的限制,当用户选中控件时它不会自动打开。我已经纠正了代码。当Select2从制表符或单击中获得焦点时,控件将打开弹出窗口,除非它被禁用。 (以前我没有检查已禁用的属性。)

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

答案 1 :(得分:1)

Examples (Disabled mode) section中的官方文档中描述了禁用选择:

  

Select2将响应<select>个元素的已禁用属性。   您还可以使用disabled初始化Select2:true以获得相同的效果   效果。

至于Kartik的扩展程序,您可以在'disabled' => true部分下设置options,如下所示:

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

我检查确定,它确实有效。