2015-07-27 7 views
5

Mit der Verwendung von select2.js v4 Plugin, wie den Standardwert ausgewählten Wert, wenn ich ein lokales Array Daten für die Quelle verwenden?Select2.js v4.0: Wie wird der standardmäßig ausgewählte Wert mit einer lokalen Datenquelle festgelegt?

zum Beispiel mit diesem Code

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

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

Wie Set-ID 3 als Standardwert ausgewählt?

+0

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

Antwort

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

dies war für mich mit V4.0.3

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

Dies ist die richtige Antwort für v4. Kompakter ausgedrückt können Sie '$ ('. Select') schreiben. Val (3) .trigger ('change')'. Verwenden Sie 'trigger ('change.select2')', um nur Select2 der Änderung zu benachrichtigen. Siehe http://select2.github.io/options.html#what-events-does-select2-listen-for – Paul

0

Es ist besser, Sie ein anderes Attribut (ausgewählt in meinem Fall unten) wählen und es verwenden, um den Standardwert gesetzt senden. Ich habe so etwas wie unten -

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

dann tun

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