2016-08-04 29 views
8

Ich habe eine select2-Box im Bootstrap-modal, ich möchte den Wert der select2-Box ändern, aber es hat nicht funktioniert.Wie man select2 Wert programmgesteuert ändern kann

Ich habe versucht, jede einzelne Lösung in früheren Posts und Ergebnisse, aber keiner von ihnen hat es funktioniert.

Ich benutze select2 4.0.2, die ich getestet:

$ ('# select_id') val ('val') Trigger ('change.select2');.. und $ ('# select_id'). Val ('val'). Trigger ('change'); und $ ('# select_id'). Val ('val').() Ändern

Es funktioniert ein oder zwei Mal dann nur


Es funktioniert gut, es stoppt (zufällig) zu arbeiten, wenn ich wechsle die select2 zurück zu 3.xx

Antwort

13
$('#select_id').val('val').trigger('change'); 

den richtigen Weg ist, here

+4

sehen dies funktioniert nur, wenn Sie den ausgewählten Wert ändern, bevor select2 implementiert wurde –

2
$('#select_id').select2('val', selectedValue); 
+0

Hat nicht funktioniert, die empfangene Methode "select2 ('val') wurde für ein Element aufgerufen, das Select2 nicht verwendet". Wir brauchen eine bessere Dokumentation dieser einfachen Änderungsaufgabe –

+0

Nun, diese "Fehler" -Meldung ist ziemlich klar: Sie haben select2 noch nicht initialisiert, aber versuchen, einen Wert zu setzen. In früheren Versionen des Plugins konnten Sie beide Dinge zusammen tun, aber jetzt können Sie nicht. – igasparetto

+1

Wenn ich zuerst initialisiere, gebe ich "undefined" zurück und der Auswahlwert wird auf leer gesetzt. Mit .val ('xx'). Trigger ('change') funktioniert es. Ich habe es von der Konsole auf select2 Beispiel Website versucht: $ ('. Js-example-basic-single.js-states'). Select2 ('val', 'CA') zurückgegeben undefiniert und $ ('. Js-example- basic-single.js-states '). val (' CA '). trigger (' change ') funktioniert –