2015-08-25 20 views
6

Semantik kullanıcı arabirimi kullanarak bir web sayfası oluşturmak için çalışıyorum. Hem UI çerçeveleri hem de jquery için yeniyim. Bir kullanıcının rollerini seçmek için çoklu seçim Açılır bileşeni kullanıyorum. Açılır menüleri uygulayabiliyorum ve değerleri seçebiliyorum.Semantik Kullanıcı Arabirimi: Çoklu Seçme Ön seçimli değerler

Ancak, herkes açılır menüye varsayılan bir değer (önceden seçilmiş) ayarlamama yardımcı olabilir mi? here belirtilen davranışları denedim, ancak bir şekilde işe yaramaz. Burada özlediğim bir şey mi var?

fiddle ve kodu burada.

Benim 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> 

Benim JavaScript:

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

, ben javascript bir değişkene değerler getirilirken yardım alabilirim?

cevap

13

Sözdizimi biraz kapalı. Bu deneyin:

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

Güzel. Bu çok basitti. Teşekkürler. – Phanikanth

+1

Önemli ayrıntıları (ortaya çıkarmak için belirttiğimyle), seçili değerleri ayarlamadan sonra ayarlamamak için 'select'i' .dropdown() 'ile başlatamıyordum. – Saran

+0

Teşekkürler! Gidonlar için küçük snippet: $ ('. Ui.dropdown'). Açılan menü ('set selected', [{{# each tags}} '{{this}}', {{/ each}}]); – Flaudre

0

Değer ekleyin tüm ilgili (<option selected="selected">) açılan anlamsal belirleyin:

$("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

ile nasıl yapabilirim? Çözümünüzün mevcut cevaba yeni bir kalite kattığını düşünüyor musunuz? Daha uzun ve daha karmaşık bir yol. –

+0

Bu çözümün gerektiği kadar iyi olduğunu düşünüyorsanız, –

+0

Tamam seçildiğinde birden çok seçeneğim olduğunda bulduğum tek çözüm. Ancak, tam ve kaliteli bir cevap üretmek için kodunuzu açıklamanız gerekir. –

İlgili konular