Select2 désélectionnez toutes les valeurs
Je veux désélectionner toutes les valeurs en un clic sans utiliser chacune id
séparément.
J'ai tripoté pendant un moment, mais cela désélectionne seulement la première valeur. Toutes les suggestions?
Voici comment j'essaie de désélectionner:
$( "#mybutton" ).click(function() {
$("select").select2('val', '')
});
9 réponses
$("select").val('').change();
C'est tout :) http://jsfiddle.net/6hZFU/78/
Explication: lorsque vous modifiez la valeur d'une entrée ou sélectionnez via le navigateur JavaScript ne déclenche pas d'événement de changement pour ce changement (c'est ainsi que disent les spécifications).
Lorsque vous déclenchez l'événement de modification, select2 rattrapera et reflétera la nouvelle valeur de select.
Si vous utilisez Select2 version 4.0, vous devrez utiliser la nouvelle syntaxe:
$("select").val(null).trigger("change");
Si vous voulez effacer plusieurs listes déroulantes multiselect à L'aide de L'api Select2 v4, voici un moyen simple:
$("li.select2-selection__choice").remove();
$(".select2").each(function() { $(this).val([]); });
Pas de focus sur la liste déroulante et nettoyer les éléments" select "et" Select2";)
J'ai essayé les solutions ci-dessus mais cela n'a pas fonctionné pour moi.
C'est le genre de hack, où vous n'avez pas à trigger change.
$("select").select2('destroy').val("").select2();
Ou
$("select").each(function () { //added a each loop here
$(this).select2('destroy').val("").select2();
});
Essayez ceci, cela fonctionne parfaitement.
$('#form-search-amenities > option').prop("selected", false);
$("li.select2-selection__choice").remove();
#form-search-amenities
faudrait le remplacer par l'ID de votre <select>
déroulante.
$('#destinatariMail').val("-1").trigger("change");
De cette façon, vous désélectionnerez également les options marquées qui ont été insérées "à la volée".
Dans le cas où quelqu'un est intéressé par la solution de configuration native Select2 (Pas de bouton séparé).
Au moment de l'écriture (select2 V 4), Select2 peut ajouter un bouton pour effacer la sélection multiple. Pas besoin de <option></option>
solution de contournement pour que l'espace réservé apparaisse:
$('#my-select').select2({
placeholder: "Select something",
allowClear: true
});
À Partir de la documentation.
Vous devez utiliser la classe de votre sélectionnez(select2_single)
Exemple:
$('#button_clear').click(function ()
{
$('.select2_single').select2('val','');
});
Debes usar la clase de tus sélectionnez
Ej:
$('#button_clear').click(function ()
{
$('.select2_single').select2('val','');
});