我在表单中有一些用于不同语言的标签。 我正在尝试使用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
答案 0 :(得分:1)
由于@Rory McCrossan的评论,我进行了研究并弄清楚了。
解决方法
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
changeSelect()
})
// Select2
function changeSelect() {
$("select.select2").select2({
tags: true
})
}
每当更改选项卡时都会激活该功能