Yii2:如何禁用或只读 Select2 小部件?

Rob*_*ini 2 html php disabled-input jquery-select2 yii2

我使用基于select2.github.io 的小部件,我需要它是只读的,以便用户可以看到默认的选择选项,但它无法更改,我认为这个小部件没有此选项。

是否有适用于任何 Select2 小部件的通用解决方案?

$form->field($model, 'id_color')->widget(Select2::classname(), [
    'items' => ['1' => 'blue', '2' => 'red', '3' => 'yellow']
])
Run Code Online (Sandbox Code Playgroud)

Muh*_*lam 9

好吧,有一个选项的名称disabled可以传递为truefalse导致呈现禁用或启用的选择。

<?php echo $form->field($model, 'id_color')->widget(Select2::classname(), [
        'items' => ['1' => 'blue', '2' => 'red', '3' => 'yellow']
        'pluginOptions' => [
            'disabled' => true
        ]
    ]);
?>
Run Code Online (Sandbox Code Playgroud)

但是,在使用它之前,您应该意识到禁用的输入不会作为 post 数组的一部分与表单一起提交,并且readonly属性 `在 4.0 及更高版本中已被删除。因此,您可能需要采取解决方法,为禁用的选择添加隐藏输入,该输入保存禁用的选择的当前选定选项的 ID。

因此,将以下内容添加到您的表单中,然后就可以开始了

<?php echo $form->field($model, 'id_color')->hiddenInput() ?>
Run Code Online (Sandbox Code Playgroud)