【问题标题】:select2 placeholder showing empty optionselect2 占位符显示空选项
【发布时间】: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

标签: javascript css twitter-bootstrap jquery-select2


【解决方案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"); 成功了

    【讨论】:

    【解决方案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; 标签。

          【讨论】:

            猜你喜欢
            • 2016-10-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-01-15
            • 1970-01-01
            • 1970-01-01
            • 2013-07-31
            相关资源
            最近更新 更多