Select2 在第一次渲染时不显示标签
Select2 don't show tags at first rendering
我有这个select:
<select id='visits_type' value={this.state.current_company.visits_type} onChange={this.handleChange} multiple='multiple' className='form-control'>
<option value="Visita Presencial">Visita Presencial</option>
<option value="Telefone/Ligação">Telefone/Ligação</option>
<option value="Email">Email</option>
<option value="WhatsApp">WhatsApp</option>
<option value="Facebook">Facebook</option>
<option value="Site/Formulário de Contato">Site/Formulário de Contato</option>
selected 值从数据库加载,并通过 value={this.state.current_company.visits_type}react.js 注入 select声明。它工作正常:
但我希望它看起来像 Select2 样式,所以我这样做:
$('#visits_type').select2({ tags: true, multiple: true).on('change', self.handleChange);
我的问题是,当我将 select2 应用到 select 时,它不会显示已经 'selected' 元素的标签,除非我插入另一个 tag/option。
起初,它什么也不会显示(没有标签):
如果我单击 select,它将显示我的 3 个已准备就绪的 selected 选项,但仍然没有标签:
如果我单击任何选项,它将 add/remove selected 选项并显示标签:
我希望那些标签从第一次渲染开始就出现,而不仅仅是在我打开 select 选项并单击其中一个之后。
您可以通过 $(...).select2('val', values)
设置值。
$('#example').select2({
placeholder: 'Select a month',
tags: true,
multiple: true
});
var selectedValues = [['JAN','FEB']];
$('#example').select2("val", selectedValues);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.full.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet"/>
<select id="example" style="width: 300px">
<option value="JAN">January</option>
<option value="FEB">February</option>
<option value="MAR">March</option>
<option value="APR">April</option>
<option value="MAY">May</option>
<option value="JUN">June</option>
<option value="JUL">July</option>
<option value="AUG">August</option>
<option value="SEP">September</option>
<option value="OCT">October</option>
<option value="NOV">November</option>
<option value="DEC">December</option>
</select>
我有这个select:
<select id='visits_type' value={this.state.current_company.visits_type} onChange={this.handleChange} multiple='multiple' className='form-control'>
<option value="Visita Presencial">Visita Presencial</option>
<option value="Telefone/Ligação">Telefone/Ligação</option>
<option value="Email">Email</option>
<option value="WhatsApp">WhatsApp</option>
<option value="Facebook">Facebook</option>
<option value="Site/Formulário de Contato">Site/Formulário de Contato</option>
selected 值从数据库加载,并通过 value={this.state.current_company.visits_type}react.js 注入 select声明。它工作正常:
但我希望它看起来像 Select2 样式,所以我这样做:
$('#visits_type').select2({ tags: true, multiple: true).on('change', self.handleChange);
我的问题是,当我将 select2 应用到 select 时,它不会显示已经 'selected' 元素的标签,除非我插入另一个 tag/option。
起初,它什么也不会显示(没有标签):
如果我单击 select,它将显示我的 3 个已准备就绪的 selected 选项,但仍然没有标签:
如果我单击任何选项,它将 add/remove selected 选项并显示标签:
我希望那些标签从第一次渲染开始就出现,而不仅仅是在我打开 select 选项并单击其中一个之后。
您可以通过 $(...).select2('val', values)
设置值。
$('#example').select2({
placeholder: 'Select a month',
tags: true,
multiple: true
});
var selectedValues = [['JAN','FEB']];
$('#example').select2("val", selectedValues);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.full.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet"/>
<select id="example" style="width: 300px">
<option value="JAN">January</option>
<option value="FEB">February</option>
<option value="MAR">March</option>
<option value="APR">April</option>
<option value="MAY">May</option>
<option value="JUN">June</option>
<option value="JUL">July</option>
<option value="AUG">August</option>
<option value="SEP">September</option>
<option value="OCT">October</option>
<option value="NOV">November</option>
<option value="DEC">December</option>
</select>