Select2 多框占位符未在隐藏时显示,然后使其可见

Posted

技术标签:

【中文标题】Select2 多框占位符未在隐藏时显示,然后使其可见【英文标题】:Select2 multiple box placeholder not showing on hide then make it visible case 【发布时间】:2016-08-29 09:50:40 【问题描述】:

我在 <select multiple> 中使用 select2()。我所拥有的是该选择中的 占位符。我正在做的是最初我隐藏了包含 div 的选择,然后我让它可见。在这种情况下,最初没有显示占位符。

如果我们不做这个隐藏和阻止的事情,那么它工作正常。

FIDDLE

【问题讨论】:

我更新了答案以反映您的问题。我碰巧阅读了“多个”部分。我提供了代码来解决您的问题。你能验证解决方案吗? 【参考方案1】:

(已编辑)对不起,我读错了问题。我认为这是关于常规选择而不是倍数。

我检查了你的小提琴。

    这包含 2 个倍数。 <select multiple id="e1" style="width:100%" multiple data-placeholder="Choose country(s)*">。我不知道这是不是故意的。但是你应该删除一个。 当您设置display: none 时,输入元素select2 的width 设置为0px。您需要将宽度增加到合适的大小。 我在您的代码中添加了$('.select2-input, .select2-default', $("#divid")).css('width', '100%');,这解决了您的问题。

片段(非功能性,需要 select2 库):

$("#e1").select2();
    $('.select2-input, .select2-default', $("#divid")).css('width', '100%');
    $("#divid").css("display","block");
<div id="divid" style="display:none;">

<select id="e1" style="width:100%" multiple data-placeholder="Choose country(s)*">
        <option value="AL">Alabama</option>
        <option value="Am">Amalapuram</option>
        <option value="An">Anakapalli</option>
        <option value="Ak">Akkayapalem</option>
        <option value="WY">Wyoming</option>
    </select>     
</div>

【讨论】:

哥们,你真是个天才!只要我认为问题来自完全不同的原因,我就一直在寻找解决方法。从来没有想过从 css 的角度来查找东西。非常感谢!【参考方案2】:

只需将此类添加到您的 .css 文件中即可。 .select2-search__fieldwidth:100% !important;

【讨论】:

以上是关于Select2 多框占位符未在隐藏时显示,然后使其可见的主要内容,如果未能解决你的问题,请参考以下文章

React 状态数据未在第一个组件渲染时显示

在悬停时显示 div(固定位置和溢出隐藏父级)

在按钮单击时显示/隐藏 ImageView

Textarea占位符未显示[重复]

UITableviewController 未在触摸时显示菜单

当用户放大 UIScrollView 时如何隐藏某些内容,然后在缩小时显示它?