Javascript Sélectionnez la case d'actualisation nécessaire dans YUI3, lors de la sélection de rien?

StackOverflow https://stackoverflow.com/questions/1201898

  •  05-07-2019
  •  | 
  •  

Question

J'utilise YUI 3 pour permettre à quelqu'un de cliquer sur "Sélectionner tout". ou "Ne rien sélectionner" puis faites en sorte que la zone de sélection sélectionne tous les éléments ou désélectionne tous les éléments, respectivement. Voici mon code:

// This selects all
    Y.on('click',function (e) {
            selectBoxNode.get("options").each(function () {
               this.removeAttribute('selected');
               this.setAttribute('selected','selected');
            });
        }, selectAllNode
    );

// This selects none
   Y.on('click',function (e) {
            selectBoxNode.get("options").each(function () {
               this.setAttribute('selected','false');
               this.removeAttribute('selected');
            });
            selectBoxNode.('selectedIndex',-1);
        }, selectNoneNode
    );

selectAllLink, selectNoneLink et selectBoxNode sont des nœuds évidents, retournés correctement. Mise à jour: tout fonctionne, j'ai dû supprimer manuellement l'attribut "sélectionné" pour chaque ajout et le rajouter.

Le selectNoneLink ne fonctionne pas: il désélectionne uniquement les éléments qui n'avaient pas été sélectionnés auparavant ... bien que l'inspection du DOM montre que l'attribut selectedIndex est bien changé à -1, alors il faut peut-être un rafraîchissement?

Toute aide serait appréciée. Si cela se produit dans tous les cadres, il serait bon de le savoir également.

Merci!

Était-ce utile?

La solution

Cela a fonctionné pour moi.

YUI().use('node', function(Y) {
   Y.get('#unsel').on('click', function(e) {
     Y.get('select').get('options').set('selected',false);
   });
   Y.get('#sel').on('click', function(e) {
     Y.get('select').get('options').set('selected', true );
   });
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top