在最初隐藏时使用select2
<select>
对于多个属性,占位符不会显示。看看代码,我可以看到那个选择器
.select2-container--default .select2-search--inline .select2-search__field
有0px的宽度(猜是因为它是隐藏的)。
$('[data-trigger="open"]').on('click', function(){
$('[data-target="open"]').toggleClass('hidden');
})
$('.select2').select2({
width: '100%'
});
.hidden {
display:none;
}
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/css/select2.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/js/select2.min.js"></script>
<p><a href="#" data-trigger="open">Open Select2 and watch no placeholder...</a></p>
<div class="hidden" data-target="open">
<select name="select" id="select" class="select2" multiple data-placeholder="Select one or more...">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
</div>
强迫某人
width: 100% !important
css规则只是部分地解决了这个问题:占位符出现了,但是输入字段随着每一项的选择而增长太多了。
$('[data-trigger="open"]').on('click', function(){
$('[data-target="open"]').toggleClass('hidden');
})
$('.select2').select2({
width: '200px' // limit size to make the "growing "problem appear
});
.hidden {
display:none;
}
.select2-container--default .select2-search--inline .select2-search__field {
width: 100% !important;
}
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/css/select2.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/js/select2.min.js"></script>
<p><a href="#" data-trigger="open">Open Select2: placeholder ok, but field grows abnormally when inserting items...</a></p>
<div class="hidden" data-target="open">
<select name="select" id="select" class="select2" multiple data-placeholder="Select one or more...">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
</div>
拜托,有什么帮助吗?