Je sais comment activer l'attribut sélectionné depuis le menu déroulant; Je peux utiliser ce code:
$('select').select2();
mais mon problème est comment le désactiver? THX
Essaye ça:
$('select option:selected').attr('disabled','disabled');
MODIFIER:
** Pour ceux qui utilisent Select 2 version 4+ , la nouvelle façon de procéder devrait être:
$("select").prop("disabled", true); // instead of $("select").enable(false);
Après avoir clarifié la question, voici la bonne façon de le faire:
$('select').select2().enable(false);
la bonne façon est:
$('select').select2("enable",false)
Cela fonctionne bien.
Le codage ci-dessous fonctionne aussi très bien
Pour activer la zone de sélection:
$('#foo').select2('enable');
Pour désactiver la zone de sélection:
$('#foo').select2('disable');
jsfiddle: http://jsfiddle.net/DcunN/
Pour désactiver la boîte de dialogue select2 complète, c'est-à-dire aucune suppression de valeurs déjà sélectionnées ni aucune nouvelle insertion, utilisez:
$("id-select2").attr("disabled", true);
où id-select2
est l'identifiant unique de select2. vous pouvez également utiliser une classe particulière si elle est définie pour traiter le menu déroulant.
À partir de Select2 4.1, ils ont supprimé la prise en charge de .enable.
$("select").prop("disabled", true); // instead of $("select").enable(false);
Dans selec2 site vous pouvez voir les options. Il y a l'option "désactivé" pour api. Vous pouvez utiliser comme:
$('#foo').select2({
disabled: true
});
Comme la question ne semble pas claire, je suis désolé si cette réponse n’est pas directement liée à l’intention initiale.
Pour ceux qui utilisent Select2 version 4+ et selon la documentation officielle du plugin, .select2("enable")
n’est plus la solution pour désactiver la case de sélection (pas une seule de ses options). Il sera même complètement supprimé de la version 4.1.
Citation directe de la documentation (voir https://select2.org/upgrading/migrating-from-35#select2-enable ):
Select2 respectera la propriété disabled de l'élément select sous-jacent. Pour activer ou désactiver Select2, vous devez appeler
.prop('disabled', true/false)
sur l'élément. La prise en charge des anciennes méthodes sera complètement supprimée dans Select2 4.1.
Donc, dans l'exemple de la réponse précédente, cela devrait être: $('select').prop(disabled,true);
Selon la documentation select2: Cliquez ici
Si vous souhaitez désactiver select2, utilisez cette approche:
$(".js-example-disabled").prop("disabled", true);
Si vous souhaitez activer une zone de sélection désactivée, utilisez cette approche:
$(".js-example-disabled").prop("disabled", false);
$('select').select2('enable',false);
Cela fonctionne pour moi.
Je suis désactivé sur la valeur:
<option disabled="disabled">value</option>
Je désactive select2 avec
$('select').select2("enable",false);
et leur permettre avec
$('select').select2("enable");