Marcar Todos/Vários Checkbox de uma Vez usando Prototype

29 05 2008

Saudações

Todo mundo já teve que fazer um checkbox que ao ser clicado “ticava” todos os outros checkbox de uma lista. Hoje novamente passei por isso e escrevi um código Javascript que modéstia a parte achei bem bonitinho.

O HTML

<div id="modulo_1" class="div_modulo">
<input type="checkbox" onclick="grupopermissao.ticarTodasAcoes(1)" id="check_1" />Todos
<input type="checkbox" /> Opção 1
<input type="checkbox" /> Opção 2
<input type="checkbox" /> Opção 3
</div>

o navegador vai ficar mais ou menos assim:

O Javascript

var grupopermissao = {
  ticarTodasAcoes : function(div){
    $$("#modulo_"+div+' input').each(function(e){
      e.checked = $("check_"+div).checked;
    });
  }
}

Explicação

Ao clicar no checkbox (que marca todos os outros) será chamada o método grupopermissao.ticarTodasAcoes passando como parâmetro o número do DIV onde estão contidos os checkbox que devem ser “ticados”, a função $$ pertence a biblioteca prototype, ela vai selecionar elementos através de regras CSS 2, no caso vai pegar todos os inputs de dentro do DIV, esta função retorna um enumerable que é iterado com o uso da função each e por fim a propriedade checked de cada um dos checkbox ficará iguais a do checkbox todos, ou seja a função “tica” e “destica” tudo numa função só :)

Bom agora é só adaptar ai pra sua realidade e “magavilha”.

[]’s Anselmo Battisti


Ações

Informações

Deixe um comentário