使用ng-model指令从select2中删除空选项

时间:2016-05-10 09:46:27

标签: javascript jquery angularjs jquery-select2 select2

我在select2中有2个空选项:1我添加到html以使我的占位符有效,1我不知道它出现在哪里。

如何通过jquery删除空选项? 困难在于我无法从select的下拉列表中获取div以检查div的text()是否为空,因为它也是div中的。

空div的例子:

<li class="select2-results-dept-0 select2-result select2-result-selectable select2-highlighted" role="presentation">
  <div class="select2-result-label" id="select2-result-label-12" role="option">
    <span class="select2-match"></span>
  </div>
</li>

填充div的实例:

<li class="select2-results-dept-0 select2-result select2-result-selectable select2-highlighted" role="presentation">
  <div class="select2-result-label" id="select2-result-label-12" role="option">
    <span class="select2-match"></span>
    "Text1"
  </div>
</li>

这是用于演示我的问题的漏斗(在我真正的html中我只有1个空选项): http://plnkr.co/edit/pO71Wr0k9BM2D2Z5yQWu?p=preview

3 个答案:

答案 0 :(得分:0)

使用filter()功能仅选择空选项并使用remove()

删除它们
 $('select option:not(:first)')
        .filter(function() {
            return !this.value || $.trim(this.value).length == 0 || $.trim(this.text).length == 0;
        })
       .remove();

答案 1 :(得分:0)

这是因为在您的options.js脚本中,您要添加带有文本的新三个选项:&#39; Text1,Text2,Text3&#39;。 如果删除此代码,那么它将与html中的三个空选项一起使用。 此外,如果您在选择空选项中添加空,您将看到它们。 如果选择填充这样的数据,您将看到三个包含数据和占位符的选项:

    <select id="select", multiple="true">
      <option value="one">One</option>
      <option value="two">Two</option>
      <option value="three">Three</option>
    </select>

enter image description here

答案 2 :(得分:0)

根据您的需要,可以在Plnk.co...

查看工作演示

如果您无法查看链接或文件,我通常不会这样做,请告诉我,我会将文件发送给您。

我在你的js文件中做了一些更改,我希望这会对你有帮助。