2016-05-10 5 views
2

У меня есть 2 пустых варианта в моем select2: 1 Я добавил в html, чтобы мои работы с заполнителем и 1 я понятия не имею, откуда он появился.Удалить пустую опцию из select2 с директивой ng-model

Как удалить пустые параметры jquery? Трудность состоит в том, что я не могу получить div из выпадающего списка select, чтобы проверить текст div() пуст, потому что это также span в 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> 

Exapmle заполненного 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> 

Вот pluner, чтобы продемонстрировать мою проблему (на моей реальной HTML У меня есть только один пустой вариант): http://plnkr.co/edit/pO71Wr0k9BM2D2Z5yQWu?p=preview

ответ

0

Используйте функцию filter(), чтобы выбрать только нулевые параметры и удалить их с помощью remove()

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

как функция фильтра будет выглядеть, если моя пустая опция имеет значение, но не имеет текст? – kipris

+0

Это приведет к удалению всех элементов опции, которые не имеют значения или не имеют текста. – DenseCrab

+0

Ваш ответ отчасти меня. Но он не удаляет такие параметры, которые появляются после того, как я их выбрал. Итак, этот параметр появляется: или или Возможно, это select2 issue ? – kipris

0

Это происходит потому, что в вашем скрипте options.js вы добавляете новые три параметра с текстом: «Text1, Text2, Text3». Если вы удалите этот код, он будет с тремя пустыми параметрами в 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

+0

Мне не нужно удалить этот код – kipris

+0

kipris Что вы хотите? – ilgam

0

рабочая демо в соответствии с вашими потребностями можно увидеть на Plnk.co...

Я не обычный to plnkr так incase, если вы не можете проверить ссылку или файлы, пожалуйста, дайте мне знать, я пришлю вам файл.

Я внесла некоторые изменения в ваши js-файлы, и я надеюсь, что это вам поможет.