我正在使用Yii2的高級模板。每當select2'佔位符'被分配一個值時,小部件將不顯示初始值。我可以通過使用['placeholder' => $placeholder]
解決這個問題,並且每當初始值存在時將該變量設置爲NULL。但是,如果佔位符爲NULL並且顯示初始值,則allowClear不起作用。我究竟做錯了什麼?Yii2 kartik-v select2小部件allowClear和佔位符無法正常工作
檢視:
use kartik\select2\Select2;
<?= $form->field($profile, 'associationSelect')->widget(Select2::classname(), [
'data' => $associationList,
'language' => 'en',
'theme' => 'krajee',
'options' => ['placeholder' => 'Select Association ...'],
'pluginOptions' => ['allowClear' => true],
])->label(''); ?>
控制器:
$associationArray = Association::find()
->select('association, id')
->indexBy('id')
->orderBy('association')
->all();
$associationList = ArrayHelper::map($associationArray, 'id', 'association');
$ associationList是例如{[1] => 「association1」 的陣列,[2] =>「association2,[3]。 ..「}。
$profile->associationSelect
由控制器用密鑰預先填充。我的問題是,小部件總是顯示'Select Association ...',無論$profile->associationSelect
是否被填充。我只希望佔位符顯示$associationSelect
是否爲空,因爲佔位符應該如何工作。如果我留下佔位符爲空(NULL),則清除選項(「x」)顯示在窗口小部件中,但不會清除文本(即單擊時不會執行任何操作)。
作爲一條評論。我不使用那個小部件,我更喜歡使用常規下拉列表提示第一個值,添加類「select2」並使用這個庫:https://github.com/select2/select2/blob/master/LICENSE.md。任何使用kartik-v的優勢? – Eduardo
@Eduardo看起來像是一樣的。 Kartik小部件爲select2提供Yii2包裝器。請參閱https://github.com/select2/select2。 – SM0827