2015-07-27 7 views
5

Utilizzando il plug-in select2.js, come impostare il valore selezionato predefinito quando utilizzo i dati di un array locale per l'origine?Select2.js v4.0: come impostare il valore selezionato predefinito con un'origine dati dell'array locale?

per esempio con questo codice

var data_names = [{ 
    id: 0, 
    text: "Henri", 
}, { 
    id: 1, 
    text: "John", 
}, { 
    id: 2, 
    text: "Victor", 
}, { 
    id: 3, 
    text: "Marie", 
}]; 

$('select').select2({ 
    data: data_names, 
}); 

Come id 3 set come predefinito valore selezionato?

+0

$ ("# ID") select2() select2 ("val", 'oneofthevaluehere')..; – cfprabhu

risposta

5
$('.select').select2({ 
     data: data_names, 
    }).select2("val",3); 
4

questo ha funzionato per me con V4.0.3

$('.select').select2({ 
    data: data_names, 
}) 
$('select').val(3); 
$('select').trigger('change.select2'); 
+0

Questa è la risposta corretta per v4. Più compatto puoi scrivere '$ ('. Select'). Val (3) .trigger ('change')'. Usa 'trigger ('change.select2')' per notificare solo Select2 della modifica. Vedi http://select2.github.io/options.html#what-events-does-select2-listen-for – Paul

0

E 'meglio che si invia un altro attributo (selezionato nel mio caso sotto) per selezionare e utilizzarlo per impostare il valore di default. Ho fatto qualcosa di simile qui sotto -

var data_names = [{ 
    id: 0, 
    text: "Henri", 
}, { 
    id: 1, 
    text: "John", 
}, { 
    id: 2, 
    text: "Victor", 
}, { 
    id: 3, 
    text: "Marie", 
    selected: true 
}]; 

poi fare

  $(".select").select2({ 
       data : data_names 
      }); 
      data_names.forEach(function(name){ 
       if(name.selected) { 
        $(".select").select2('val',name.id); 
       } 
      }); 
Problemi correlati