Select2 не работает внутри вкладки начальной загрузки - PullRequest
0 голосов
/ 21 марта 2019

В моей форме есть несколько вкладок для разных языков. Я пытаюсь добавить поле тегов с плагином select2. На вкладках, показанных вначале, он работает нормально, но когда я переключаюсь на другие вкладки, он отображается неправильно.

Вот код

<div class="nav-tabs-custom">
    <ul class="nav nav-tabs">
        @foreach($languages as $language)
            <li {{ $loop->first ? 'class=active' : '' }}>
                <a href="#insurance_{{ $language->code }}" data-toggle="tab">{{ title_case($language->native) }}</a>
            </li>
        @endforeach
    </ul>
    <div class="tab-content">
        @foreach($languages as $language)
            <div class="tab-pane {{ $loop->first ? 'active' : '' }}" id="insurance_{{ $language->code }}">
                <h4>Main</h4>
                <div class="form-group {{ $errors->has('language.'.$language->code.'.tags') ? 'has-error' : '' }}">
                    <label for="{{ $language->code }}-tags">{{ __('tags',[],$language->code) }}</label>
                    <select name="language[{{ $language->code }}][tags][]" id="{{ $language->code }}-tags" class="form-control select2" multiple="multiple">
                        @foreach($tags as $tag)
                            <option value="{{ $tag->id }}">{{ $tag->translate($language->code)->name }}</option>
                        @endforeach
                    </select>
                    @if($errors->has('language.'.$language->code.'.tags'))
                        <span class="help-block">{{ $errors->first('language.'.$language->code.'.tags') }}</span>
                    @endif
                </div>
            </div>
        @endforeach
    </div>
</div>

   @push('scripts')
<script type="text/javascript">
    $(document).ready(function() {
        // Select2
        $("select.select2").select2({
            tags: true
        })
    })
</script>
@endpush

Вот несколько картинок http://prntscr.com/n0w534 http://prntscr.com/n0w5b8

1 Ответ

1 голос
/ 21 марта 2019

Благодаря комментарию @Rory McCrossan I я исследовал и выяснил это.

Вот исправление

$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
    changeSelect()
})

// Select2
function changeSelect() {
    $("select.select2").select2({
        tags: true
    })
}

Активирует функцию при каждом изменении вкладки

...