select2 占位符显示空选项

Posted

技术标签:

【中文标题】select2 占位符显示空选项【英文标题】:select2 placeholder showing empty option 【发布时间】:2013-10-27 11:04:58 【问题描述】:

在 select2 中也添加一个占位符,我必须像这样在代码中添加一个空选项标签

<select id="e2" name="rol_id" >
                       <option><option>
                       foreach from=$data.roles item=rol
                       <option value=$rol.rol_id>$rol.rol_nombre</option>
                       /foreach
 </select>

但是当我这样做时,我会将此选项设为空,这是可选的

我怎么能不显示该选项但仍然是占位符?

谢谢!

【问题讨论】:

style="display:none;" ? 仍然显示空选项@3rror404 也许这是一个选项? jsfiddle.net/nJ8Vu 我不知道是不是因为选择在模态框内,但是禁用的选项不起作用=(@3rror404 【参考方案1】:

第二行有语法错误。

<option></option>

【讨论】:

在 select2 文档中,它说:当占位符用于非多值选择框时,它要求您包含一个空的 标记作为您的第一个选项。 @Max @MarianaHernandez 没问题 =) 空选项很好,但需要告诉 select2 占位符文本 - 然后它将隐藏空选项...【参考方案2】:

这是一个迟到的答案,但它可以帮助某人。

我有一个带有 select2 输入的模态。

我们需要添加&lt;option&gt;&lt;/option&gt; 才能显示占位符。

HTML

<select  id="Name">
  <option></option>
  <option value="John">John</option>
  <option value="Brian">Brian</option> 
  <option value="Carl">Carl</option>
</select>

如果我想让占位符出现。

jQuery

$('#Name').select2(placeholder: 'Select a Name');

$('#Name').select2('val', '');

如果我想查看 select2 输入的值:

$('#Name').select2('val', 'John');

【讨论】:

【参考方案3】:

空选项实际上是占位符,我使用下面的代码解决了它

var s1 = $('#select2id').select2(
                    multiple: true,
                    placeholder: "Select values"
                );
                s1.val([' ']).trigger("change"); 

s1.val([' ']).trigger("change"); 成功了

【讨论】:

这是一个类似的解决方案,它使用纯 html 来防止它被点击,以及其他几种方法:***.com/a/23638053/3196753【参考方案4】:

保留空选项并通过标签上的 data-placeholder 属性或在初始化 select2 时通过占位符选项指定占位符文本。

【讨论】:

【参考方案5】:

您可以在加载角色选项后添加一行以删除第一个“空”选项。 您可以使用 jquery 进行如下操作。

$("#selectBox option[value='']").remove();

【讨论】:

谢谢,我试过了,但它删除了占位符 =( @sr.【参考方案6】:

试试$('select').select2(placeholder: 'Please select...');。结合一个空的&lt;option&gt;&lt;/option&gt; 应该可以完成这项工作;)。

【讨论】:

【参考方案7】:

我刚刚遇到了同样的问题,简单的&lt;option&gt;&lt;/option&gt; 对我不起作用。

似乎插入了空选项,但它没有分配任何高度,因此无法到达它。

我通过添加一个 non-breaking-space (&amp;nbsp;) 字符解决了(简单的空格也不起作用):

<option>&nbsp;</option>

【讨论】:

【参考方案8】:

有点离题,但您可以搜索解决方案:

如果您在每个 select2 小部件选项之间有空选项 - 如果您在模板中使用 jinja % for % 循环,请检查您的 jinja 标签并删除 &lt;option&gt;&lt;/option&gt; 标签。

【讨论】:

以上是关于select2 占位符显示空选项的主要内容,如果未能解决你的问题,请参考以下文章

占位符在 select2 中不起作用

重置 select2 值并显示占位符

选择后无法在 select2.js 中显示占位符

占位符上的 Select2 字体真棒图标

如何为select2添加占位符?

Select2 加载远程数据与占位符下拉列表的混合