2015-08-25 2 views
6

Я работаю над созданием веб-страницы с использованием Semantic UI Framework. Я новичок в интерфейсах UI и jquery. Я использую многостраничный компонент Dropdown для выбора ролей для пользователя. Я могу реализовать выпадающий список и выбрать значения.Семантический пользовательский интерфейс: Multi Select Выпадающие значения предварительного выбора

Но может ли кто-нибудь помочь мне установить значение по умолчанию (предварительно выбранное) в раскрывающемся списке? Я пробовал поведение, указанное here, но почему-то не может заставить его работать. Здесь что-то не хватает?

Вот fiddle и код.

Мой HTML:

<div class="twelve wide field"> 
    <label style="width: 250px">Add roles to user</label> 
    <select name="skills" multiple="" class="ui fluid dropdown"> 
     <option value="">Roles</option> 
     <option value="Role1">Role 1</option> 
     <option value="Role2">Role 2</option> 
     <option value="Role3">Role 3</option> 
    </select> 
</div> 

Мой JavaScript:

$(".ui.fluid.dropdown").dropdown({ allowLabels:true}) 
$('.ui.fluid.dropdown').dropdown({'set selected': 'Role1,Role2'}); 

Кроме того, я могу получить помощь в выборке значения переменной в JavaScript?

ответ

13

Ваш синтаксис слегка выключен. Попробуйте это:

$('.ui.fluid.dropdown').dropdown('set selected',['Role1','Role2']); 
+0

О, круто. Это было просто. Благодарю. – Phanikanth

+1

Важная деталь (что я трудился для раскрытия) заключалась не в том, чтобы инициализировать 'select' с' .dropdown() 'раньше, так как после этого выбранные значения не работают. – Saran

+0

Спасибо! Маленький фрагмент для рулей: $ ('. Ui.dropdown'). Dropdown ('set selected', [{{# each tags}} '{{this}}', {{each}}]); – Flaudre

0

Добавить значения (<option selected="selected">) выпадающий семантический обо всех выберите:

$("select").each(function(){ 
      var $that = $(this); 
      var values = $that.val(); 
      $("option", $that).each(function(){ 
       $(this).removeAttr("selected"); 
      }); 
      $that.dropdown('set selected', values); 
      $("option", $that).each(function(){ 
       var curr_value = $(this).val(); 
       for(var i = 0; i < values; i++){ 
        if(values[i] == curr_value){ 
         $(this).attr('selected','selected'); 
        } 
       } 
      }); 
     }); 
+0

Считаете ли вы, что ваше решение добавляет новое качество в существующий ответ? Это намного дольше и сложнее. –

+0

Это единственное решение, которое я нашел, когда у меня есть несколько вариантов. –

+0

Хорошо, если вы считаете, что ваше решение требуется, это нормально. Но тогда вы должны объяснить свой код, чтобы получить полный и качественный ответ, –