2015-08-25 22 views
6

Sto lavorando alla creazione di una pagina Web utilizzando Semantic UI Framework. Sono nuovo sia per i framework UI che per jquery. Sto usando un componente Dropdown multi selezione per selezionare i ruoli per un utente. Sono in grado di implementare il menu a discesa e selezionare i valori.Interfaccia utente semantica: selezione multipla dei valori di selezione a discesa

Ma qualcuno può aiutarmi a impostare un valore predefinito (pre-selezionato) nel menu a discesa? Ho provato i comportamenti specificati here, ma in qualche modo non riesco a farlo funzionare. C'è qualcosa che mi manca qui?

Questo è il fiddle e il codice.

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

mio JavaScript:

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

Inoltre, posso ottenere aiuto nel recupero dei valori ad una variabile in javascript?

risposta

13

La sintassi è leggermente disattivata. Prova questo:

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

Oh cool. E 'stato semplice Grazie. – Phanikanth

+1

Il dettaglio importante (che ho cercato di scoprire) non doveva inizializzare 'select' con' .dropdown() 'prima, poiché l'impostazione dei valori selezionati non funziona in seguito. – Saran

+0

Grazie! Little snippet for manubars: $ ('. Ui.dropdown'). Dropdown ('set selected', [{{# each tags}} '{{this}}', {{/ each}}]); – Flaudre

0

Aggiungere valori (<option selected="selected">) discesa semantica di tutto selezionare:

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

Pensi che la tua soluzione aggiunga nuova qualità alla risposta esistente? È molto più lungo e molto più complicato. –

+0

è l'unica soluzione che ho trovato quando ho selezionato più opzioni –

+0

Ok, se pensi che la tua soluzione sia richiesta, va bene. Ma poi devi spiegare il tuo codice, al fine di produrre una risposta completa e di qualità, –