public function createFilterJsDropdown()
    {
        foreach ($this->filters as $k => $filter) {
            $f_name = $this->name.'-ac_f'.$k;
            $chain = new jQuery('#'.$f_name);
            $options = [
                'fields'       => ['name' => 'name', 'value' => 'id'],
                'match'        => 'value',
                'apiSettings'  => ['url'         => $this->getCallbackURL().'&q={query}',
                                  'cache'        => false,
                                  'data'         => array_merge($this->getFilterQuery(), ['filter' => $filter['field']]),
                                  'onResponse'   => new jsFunction(['resp'], [
                                      new jsExpression('if (!resp.success){atk.apiService.atkSuccessTest(resp);}'),
                                  ]),
                ],
                'onChange'    => new jsFunction([
                                                    (new jQuery())->trigger('filterChanged'),
                                                    $this->getJsDropdown(),
                                                ]),
            ];

            $this->js(true, $chain->dropdown($options));
        }
        //set filter value using $(this) context for onChange handler instead of filter name.
        $options['apiSettings']['data']['filter'] = (new jQuery())->find('input')->attr('name');
        $this->filterChain = $options;
    }