BuscaPé, líder em comparação de preços na América Latina

Marcar Todos

Posted by Mathias Grimm on junho 24, 2008 in JavaScript

Bom... esse artigo é pra começar, um exemplo simples e útil!
O código está dividido em 2 partes mas eles ficam no mesmo arquivo...
A idéia é criar uma função javascript que percorra os elementos do formulario e compare o id dos elementos com o id do elemento que foi clicado.

Na linha 26 temos a criação do padrão que será utilizado na expressão regular que pesquisará os componentes do formulario. Foi utilizado o eval pois o padrão não pode ser uma string, como no comentário logo ao lado do eval.
A padrão é, strings que começam com idFuncionario ou idEmpresa, no caso é o id do componente que foi clicado mais _ mais quantos e quaisquer caractéres forem encontrados.

o exec executa a expressão regular para o id dos elementos, caso o elemento esteja no padrão é retornado true, caso contrário false, por isso quando clicamos no marcar todos do funcionário apenas elementos que comecem com idFuncionario_ passam no padrão.

  1.  
  2. <form name=formulario>
  3. <legend> Funcionários </legend>
  4. <input id="idFuncionario" type="checkbox" onchange="javascript:marcarTodos(this);"/> Todos/Nenhum
  5. <hr />
  6. <input id="idFuncionario_001" type="checkbox" /> Funcionário 001 <br/>
  7. <input id="idFuncionario_002" type="checkbox" /> Funcionário 002 <br/>
  8. <input id="idFuncionario_003" type="checkbox" /> Funcionário 003 <br/>
  9. </fieldset>
  10. <legend> Empresas </legend>
  11. <input id="idEmpresa" type="checkbox" onchange="javascript:marcarTodos(this);" /> Todos/Nenhum
  12. <hr />
  13. <input id="idEmpresa_001" type="checkbox" /> Empresa 001 <br/>
  14. <input id="idEmpresa_002" type="checkbox" /> Empresa 002 <br/>
  15. <input id="idEmpresa_003" type="checkbox" /> Empresa 003 <br/>
  16. </fieldset>
  17. </form>
  18.  
  1.  
  2. <script>
  3. function marcarTodos(componente)
  4. {
  5. var form = document.formulario;
  6. eval("var padrao = /^"+componente.id+"_.*/;"); // var padrao = /^idFuncionario_./;
  7. for(var i=0;i < form.elements.length ; i++)
  8. {
  9. if(padrao.exec(form.elements[i].id))
  10. {
  11. form.elements[i].checked = componente.checked;
  12. }
  13. }
  14. }
  15. </script>
  16.  

Resultado: (testei apenas no firefox)


Opções


Funcionários

Todos/Nenhum


Funcionário 001

Funcionário 002

Funcionário 003



Empresas

Todos/Nenhum


Empresa 001

Empresa 002

Empresa 003


1 Comentário on Marcar Todos

By Tiago Cardoso on outubro 11, 2008 at 10:58 am

Ficou bonzim…kkkkkk sacanagem!!!!
Parabéns… brother!!!

Write a Comment on Marcar Todos

Subscribe

Follow comments by subscribing to the Marcar Todos Comments RSS feed.

More

Read more posts by Mathias Grimm

Primeiro Post PHP CLI + $_SESSION + $_GET + $_POST