12

Ich benutze das select2 jQuery Plugin auf einem <select> mit multiple="multiple". Ich muss Werte zu der ausgewählten Liste hinzufügen (d. H. Nicht zu allen Optionen, sondern zu den ausgewählten Optionen, ohne eine neue Option hinzuzufügen).Hinzufügen von Werten zu einem Mehrfachauswahl mit jQuery's select2

Ich weiß, dass ich die ausgewählten Optionen mit this einstellen:

$("#the_select").select2("val", "the_option_value"); 

Oder für eine Mehrfachauswahl:

$("#the_select").select2("val", ["an_option_value","another_option_value"]); 

Allerdings gibt es eine Möglichkeit, ich ausgewählte Optionen zum hinzufügen Liste (dh eine Option ausgewählt), ohne die anderen zu entfernen?

Antwort

34

sollten Sie in der Lage sein, dies zu verwenden:

$("#the_select").append($('<option>', {value:"NEWVAL", text: "New Option Text"})); 

Es wird die neue Option Element am Ende der Liste anhängen.

HTH

bearbeiten

Take 2 :) - Ich habe versucht, dies in Chrom Entwickler-Tools über auf der select2 Seite. Es funktioniert (ich fügte hinzu: "WA" und Washington erschien

var selectedItems = $("#the_select").select2("val"); 
selectedItems.push("NEWITEMVAL"); // I used "WA" here to test. 
$("#the_select").select2("val", selectedItems); 

Oder als Motto:.

$("#the_select").select2("val", $("#the_select").select2("val").concat("NEWITEMVAL")); 
+0

Entschuldigung für das Missverständnis. Ich möchte keine Option hinzufügen, ich möchte eine Option auswählen. Ich bezweifle auch, dass dies funktionieren würde ohne Neuinitialisierung Das select2 Plugin. – Keelan

+7

Warum die down vote? Sie haben Folgendes angegeben: "Ich muss der ausgewählten Liste Werte hinzufügen." :-) Und es funktioniert, ohne das Plugin neu zu initialisieren. Versuch es. –

+0

_Ausgewählt_, nicht _select_. Wenn Sie sich den Code angesehen hätten, würden Sie sehen, dass ich den Wert (also die ausgewählten Onces) geändert habe und nicht die Optionen der Auswahl. Es könnte funktionieren, es tut nicht, was ich gefragt habe, also ist es keine Antwort auf meine Frage. Ich werde es umformulieren, um es klarer zu machen. – Keelan

0

Dies ist, wie ich es tun:

 $("#the-select") 
     .val($("#the-select") 
      .val() 
      .concat([array_of_existing_values])); 
     $("#the-select") 
     .trigger("change"); 

HTH