@Paromon
Junior software developer

Как узнать какое событие запускается при нажатии на всплывающее окно select2?

Доброго времени суток всем!
На странице создается 3 DepDrop с типом DepDrop::TYPE_SELECT2 и они мультиселектные. Второй и третий зависят от первого. Когда на странице выбираешь что то из первого DepDrop'а то в два другие подгружается нужный список для выбора, а когда забиваешь при помощи JS типа $("#mark").select2('val',[2,1]) (где mark это id первого DepDrop) то списки не подгружаются. Подскажите пожалуйста какие события надо повторить для подгрузки списков?
Код первого и второго DepDrop:
$form->field($modelForm, 'market',['showLabels' => false])->widget(Select2::classname(), [
            'data' => $modelForm->selectMarket,
            'theme' => Select2::THEME_BOOTSTRAP,
            'options' => [
                'placeholder' => 'Select Market...',
                'id' => 'market',
                'multiple' => true,
            ],
            'pluginOptions' => [
                'width' => '280px',
                'escapeMarkup' => new JsExpression('function (markup) { return markup; }'),
                'templateResult' => new JsExpression('formatMarket'),
                'templateSelection' => new JsExpression('formatMarket'),
            ]
        ]);

$form->field($modelForm, 'marketAccount',['showLabels' => false])->widget(DepDrop::classname(), [
                'type' => DepDrop::TYPE_SELECT2,
                'data' => is_array($modelForm->marketAccount)? [] :[$modelForm->marketAccount=>''],
                'options' =>['id'=>'marketAccount','multiple' => true],
                'select2Options' => [
                    'pluginOptions' => ['width' => '230px'],
                    'theme' => Select2::THEME_BOOTSTRAP,
                ],
                'pluginOptions' => [
                    'initialize' => true,
                    'initDepends' => ['market','proxyRegion'],
                    'allowClear' => true,
                    'placeholder' => 'All',
                    'depends' => ['market','proxyRegion'],
                    'url' => Url::to(['application/app-acc-subcat']),
                    'loadingText' => 'All',
                    'params'=>['marketAccountIdHidden']
                ],
                'pluginEvents'=>[
                    "depdrop.change"=>"function() { $('#marketAccount').select2('val',".json_encode($modelForm->marketAccount)."); }",
                    "select2:selecting"=>"function() {
                    var marketAccount = $('#marketAccount');
                     var array = marketAccount.select2('val');
                     if(array == null ||typeof array === 'string'){
                        return;
                     }
                     var position = array.indexOf('');
                     if(position !== -1){
                     array.splice(position, 1);
                     marketAccount.select2('val',array);
                     }
                      }",
                ]
            ]
        );
  • Вопрос задан
  • 267 просмотров
Пригласить эксперта
Ответы на вопрос 1
@vshvydky
'depends' => ['market,'proxyRegion'],
не смущает?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы