Javascript Sélectionnez la case d'actualisation nécessaire dans YUI3, lors de la sélection de rien?
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!
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 );
});
});