Kartik/Krajee Select2 未禁用

Posted

技术标签:

【中文标题】Kartik/Krajee Select2 未禁用【英文标题】:Kartik/Krajee Select2 not disabled 【发布时间】:2016-04-27 03:39:08 【问题描述】:

将“选择”设置为“禁用”不会禁用元素。用户仍然可以单击 Select2 的文本并打开选项框。这是通过单击文本而不是向下箭头按钮打开的禁用控件。

这是我的代码:

<?= $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,
], ]); ?>

单击向下箭头按钮使控件保持关闭状态,但单击控件的文本区域会打开选项框。

更新 发现我自己的错误 - 请参阅下面的答案。

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

Select2 将响应 &lt;select&gt; 元素上的 disabled 属性。 您还可以使用 disabled: true 来初始化 Select2 以获得相同的效果 效果。

至于 Kartik 的扩展,你可以像这样在options 部分下设置'disabled' =&gt; true

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

为了确定,我检查了一下,它确实有效。

【讨论】:

如果您单击元素的文本,弹出窗口会打开吗? @readtheBook 不,它已完全禁用,悬停时会出现停止标志。

以上是关于Kartik/Krajee Select2 未禁用的主要内容,如果未能解决你的问题,请参考以下文章

在 select2 上禁用“未找到匹配项”文本和自动完成

在select2的下拉打开时禁用自动对焦?

如何禁用select2中的标题

使用 select2 4.0.3 创建下拉数组并禁用基于其他 select2 值的选项

Select2 禁用/启用特定选项

在 select2 clear 上禁用下拉打开