12

Sto utilizzando il plug-in jQuery select2 su un <select> con multiple="multiple". Devo aggiungere valori all'elenco selezionato (vale a dire non tutte le opzioni, ma le opzioni selezionate, senza aggiungere una nuova opzione).Aggiunta di valori a una selezione multipla con jQuery's select2

so di poter impostare le opzioni selezionate con this:

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

Oppure, per selezioni multiple:

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

Tuttavia, c'è un modo posso aggiungere opzioni selezionate al lista (cioè rendere un'opzione selezionata) senza rimuovere gli altri?

risposta

34

Si dovrebbe essere in grado di utilizzare questo:

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

Si aggiungerà la nuova voce di opzione alla fine della lista.

HTH

Modifica

Take 2 :) - Ho provato a farlo in strumenti di Chrome dev sopra nella pagina select2. Funziona (ho aggiunto "WA" e Washington apparso

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

O come uno di linea:.

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

Ci scusiamo per l'equivoco. Non voglio aggiungere un'opzione, voglio selezionare un'opzione. Inoltre, dubito che ciò funzionerebbe senza re-inizializzare e plug-in select2. – Keelan

+7

Perché il voto negativo? Hai affermato "Devo aggiungere valori all'elenco selezionato". :-) E funziona senza reinizializzare il plugin. Provalo. –

+0

_Selezionato_, non _seleziona_. Inoltre, se avessi guardato il codice, vedresti che stavo modificando il valore (quindi le forze selezionate) e non le opzioni della selezione. Potrebbe funzionare, non fa quello che ho chiesto, quindi non è una risposta alla mia domanda. Lo riformulerò per renderlo più chiaro. – Keelan

0

Questo è come lo faccio:

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

HTH

Problemi correlati