Pergunta

Eu estou usando YUI 3 para deixar alguém clique em "Select All" ou "Select None" e depois ter a selectbox selecionar todos os itens ou desmarque todos eles, respectivamente. Aqui está o meu código:

// 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 e selectBoxNode são auto-evidentes, devidamente devolvidos Nodes. Update:. Obras selectAll, eu tinha que remover manualmente o atributo 'selecionada' para cada um e re add-lo

O selectNoneLink não funciona:? Ele unselects apenas os elementos que não foram antes selecionados ... embora mostras de inspeção DOM que o atributo selectedIndex é realmente mudado para -1, talvez por isso, necessita de uma actualização

Qualquer ajuda seria apreciada. Se isso acontece em todos os frameworks, que seria bom saber também.

Obrigado!

Foi útil?

Solução

Isso funcionou para mim.

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 );
   });
});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top