Comment définir l'espace réservé lors de la réinitialisation de la valeur par select2 ? Dans mon exemple, si l'on clique sur les cases de sélection des lieux ou des grades et que ma select2 a une valeur, la valeur de la select2 devrait être réinitialisée et afficher le placeholder par défaut. Ce script réinitialise la valeur mais n'affiche pas l'espace réservé.
$("#locations, #grade ").change(function() {
$('#e6').select2('data', {
placeholder: "Studiengang wählen",
id: null,
text: ''
});
});
$("#e6").select2({
placeholder: "Studiengang wählen",
width: 'resolve',
id: function(e) {
return e.subject;
},
minimumInputLength: 2,
ajax: {
url: "index.php?option=com_unis&task=search.locator&tmpl=component&<?php echo JSession::getFormToken() ?>=1",
dataType: 'json',
data: function(term, page) {
return {
q: term, // search term
g: $('#grade option:selected').val(),
o: $('#locations option:selected').val()
};
},
results: function(data, page) {
return {
results: data
};
}
},
formatResult: subjectFormatResult,
formatSelection: subjectFormatSelection,
dropdownCssClass: "bigdrop",
escapeMarkup: function(m) {
return m;
}
});
Vous devez définir le select2 comme
$("#customers_select").select2({
placeholder: "Select a customer",
initSelection: function(element, callback) {
}
});
Pour réinitialiser le select2
$("#customers_select").select2("val", "");
Select2 a modifié son API :
Select2 : La méthode
select2("val" ;)
a été dépréciée. et sera supprimée dans les versions ultérieures de Select2. Utilisez $element.val() à la place.
La meilleure façon de le faire maintenant est :
$('#your_select_input').val('');
Modification : décembre 2016 Les commentaires suggèrent que le ci-dessous est la façon mise à jour de le faire :
$('#your_select_input').val([]);
Select2 utilise une classe CSS spécifique, donc un moyen facile de la réinitialiser est :
$('.select2-container').select2('val', '');
Et vous avez l'avantage, si vous avez plusieurs Select2 dans le même formulaire, de les réinitialiser tous avec cette seule commande.