J'utilise le plugin select2
jQuery sur un <select>
avec multiple="multiple"
. Je dois ajouter des valeurs à la liste sélectionnée (c’est-à-dire non à toutes les options, mais aux options sélectionnées, sans ajouter de nouvelle option).
Je sais que je peux définir les options sélectionnées avec this :
$("#the_select").select2("val", "the_option_value");
Ou, pour plusieurs sélections:
$("#the_select").select2("val", ["an_option_value","another_option_value"]);
Cependant, est-il possible d'ajouter les options sélectionnées à la liste (c.-à-d. Choisir une option sélectionnée) sans supprimer les autres?
Vous devriez pouvoir utiliser ceci:
$("#the_select").append($('<option>', {value:"NEWVAL", text: "New Option Text"}));
Il ajoutera le nouvel élément d’option à la fin de la liste.
HTH
Modifier
Prenez 2 :) - J'ai essayé ceci en chrome dev tools sur la page select2. Cela fonctionne (j'ai ajouté "WA" et Washington
est apparu.
var selectedItems = $("#the_select").select2("val");
selectedItems.Push("NEWITEMVAL"); // I used "WA" here to test.
$("#the_select").select2("val", selectedItems);
Ou comme une ligne:
$("#the_select").select2("val", $("#the_select").select2("val").concat("NEWITEMVAL"));
Voici comment je le fais:
$("#the-select")
.val($("#the-select")
.val()
.concat([array_of_existing_values]));
$("#the-select")
.trigger("change");
HTH