为什么默认选择这个select2元素?
Why is this select2 element selected by default?
出于某种原因,我页面上的这个 select2 元素总是 selected。这是最小的版本:
$(document).ready(function () {
$('#animals').select2({
'multiple': true,
});
$('#business_types').select2({
'multiple': true,
});
});
<div class="mt-2">
{{ \Form::tLabel('', __('Animals'))}}
<select name="animals[]" id="animals">
@foreach($animals as $animal)
<option @if(in_array($animal->id, request()->animals ?? [])) selected @endif value="{{ $animal->id }}">{{ $animal->name }}</option>
@endforeach
</select>
</div>
<div class="mt-2">
{{ \Form::tLabel('', __('Business types'))}}
<select name="business_types[]" id="business_types">
@foreach($business_types as $business_type)
<option @if(in_array($business_type->id, request()->business_types ?? [])) selected @endif value="{{ $business_type->id }}">{{ $business_type->name }}</option>
@endforeach
</select>
</div>
这个 PHP 产生这个:
<select name="business_types" id="business_types" data-select2-id="select2-data-business_types" multiple="" tabindex="-1" class="select2-hidden-accessible" aria-hidden="true">
<option value="1" data-select2-id="select2-data-5-kfne">Alimentation</option>
<option value="2">Animaleries</option>
...
</select>
我没有包含动物 select,但这是同一个问题:第一个元素是 selected。
我试过删除 PHP 但没有太大帮助...
有人知道如何解决这个问题吗?
我只需在 select 上设置“多个”值即可解决此问题。
<select name="business_types[]" id="business_types" multiple="multiple">
@foreach($business_types as $business_type)
<option @if(in_array($business_type->id, request()->business_types ?? [])) selected @endif value="{{ $business_type->id }}">{{ $business_type->name }}</option>
@endforeach
</select>
出于某种原因,我页面上的这个 select2 元素总是 selected。这是最小的版本:
$(document).ready(function () {
$('#animals').select2({
'multiple': true,
});
$('#business_types').select2({
'multiple': true,
});
});
<div class="mt-2">
{{ \Form::tLabel('', __('Animals'))}}
<select name="animals[]" id="animals">
@foreach($animals as $animal)
<option @if(in_array($animal->id, request()->animals ?? [])) selected @endif value="{{ $animal->id }}">{{ $animal->name }}</option>
@endforeach
</select>
</div>
<div class="mt-2">
{{ \Form::tLabel('', __('Business types'))}}
<select name="business_types[]" id="business_types">
@foreach($business_types as $business_type)
<option @if(in_array($business_type->id, request()->business_types ?? [])) selected @endif value="{{ $business_type->id }}">{{ $business_type->name }}</option>
@endforeach
</select>
</div>
这个 PHP 产生这个:
<select name="business_types" id="business_types" data-select2-id="select2-data-business_types" multiple="" tabindex="-1" class="select2-hidden-accessible" aria-hidden="true">
<option value="1" data-select2-id="select2-data-5-kfne">Alimentation</option>
<option value="2">Animaleries</option>
...
</select>
我没有包含动物 select,但这是同一个问题:第一个元素是 selected。
我试过删除 PHP 但没有太大帮助...
有人知道如何解决这个问题吗?
我只需在 select 上设置“多个”值即可解决此问题。
<select name="business_types[]" id="business_types" multiple="multiple">
@foreach($business_types as $business_type)
<option @if(in_array($business_type->id, request()->business_types ?? [])) selected @endif value="{{ $business_type->id }}">{{ $business_type->name }}</option>
@endforeach
</select>