select2 ne sera pas désactiver ou effacer
J'ai un secondaire sélectionnez asservi à une sélection principal (choisissez un magasin, puis choisissez un département - identique à choisir un pays, puis choisissez un état).
Je ne peux absolument pas obtenir select2 ('activer',false) et ('données', null) méthodes de travail, peu importe combien d'autres code que j'ai arracher.
<select id="stores">
<option value="foo">foo</option>
</select>
<select id="depts">
<option value="bar">bar</option>
</select>
//...some logic that selects a store, then fetches that store's depts ...
$('#depts').select2('enable',false);//does not disable control
$('#depts').select2('data',null); //does not clear control
Donc, je suis obligé de le faire:
$('select#depts').empty(); //clears HTML element
$('#depts').select2(); //re-enhances select w/select2
$('#depts').select2('disable',true); //disables
Il se comporte lui-même dans jsfiddle, donc je peux même pas poster un exemple et demander de l'aide. Je suis juste ... perplexe.
OriginalL'auteur DaveC426913 | 2013-07-16
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur
Cela fonctionne pour moi dans tous les navigateurs:
Qui vous donne une désactivé select2 d'entrée.
De ré-activé simplement:
L'inconvénient est que cela provoque votre zone de sélection pour modifier l'apparence d'une fraction de seconde lorsque select2 est détruit et réappliqué.
Aussi, "lecture seule" et "désactivé" ne sont pas pris en charge dans les versions plus anciennes de select2.
OriginalL'auteur
Vous êtes probablement victime d'select2 bug Mille cents quatre. Malheureusement c'est encore un problème avec IE8-10, mais il n'est pas select2 la faute. Le problème est que IE ne déclenche pas l'événement propertychange lorsqu'un élément est désactivé, et aussi ne pas mettre en œuvre la MutationObserver fonctionnalités que d'autres utilisent des navigateurs. Heureusement, il y a un petit plugin jQuery que j'ai écrit qui permettra à l'événement propertychange être déclenché lorsqu'un élément est désactivé. Vous pouvez le trouver ici.
devrait maintenant fonctionner dans IE8-10. Si vous avez besoin de support IE6-7, vous êtes sur votre propre!
IE8-10 n'ont pas de l'attribut de l'observateur, la seule propriété de l'observateur - de sorte que vous pourriez être confronté à un problème lorsque vous êtes à la définition de l'attribut et non pas la propriété, dans mes tests, il fonctionne très bien à l'aide de jquery .prop(), mais non .attr()
OriginalL'auteur
Si vous avez des id unique pour select2 zone de liste déroulante, à l'aide de l'identifiant, du
OriginalL'auteur
Pour IE vous devez initialiser select2 après activer/désactiver
OriginalL'auteur
auriez-vous pas besoin de cette:
$('#depts').prop('disabled', false);
même que cette question
OriginalL'auteur
Si quelqu'un est en train de le faire .net code serveur:
OriginalL'auteur
Ce code devrait fonctionner sur tous les navigateurs (select2 v4.0.4):
Pour désactiver:
Pour permettre:
OriginalL'auteur