Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

antoniomilat

Checar todos os checkboxs não funciona

Recommended Posts

Olá!

Estou com um problema ao checar todos os checkboxs de um formulário.

Estou usando essa função para marcar / desmarcar todos os checkboxs:

var checkflag = "false";
function check(field) {
           if (checkflag == "false") {
                  for (i = 0; i < field.length; i++) {
                        field[i].checked = true;
                   }
                   checkflag = "true";
                   return true;
             } else {
                   for (i = 0; i < field.length; i++) {
                        field[i].checked = false;
                    }
                    checkflag = "false";
                    return true;
            }
}

E no body eu estou fazendo uma busca no banco, e a cada registro adiciono um checkbox:

 

<-- Para marcar / desmarcar todos os checkboxs -->
<input type="checkbox" name="marcar" value="tudo" onClick="check(this.form.checks);" />

<-- E a cada registro do banco crio um novo checkbox -->
<input name='checks[<?=$aux?>]' type='checkbox' id='checks' value="<?=$linha->getCpf()?>" />

 

Isso está funcionando perfeitamente.

O problema é quando eu quando utilizo um if para exibir ou não o checkbox:

 

<? if ($linha->getStatus() == 1){
    echo "<input name='checks[".$aux."]' type='checkbox' id='checks' value=".$linha->getCpf()." />";
} else {  ?>
    <img src="../img/icone_enviado.jpg" width="20"  height="20" />
<? } ?>

 

Quando algum checkbox não é exibido pela condição, a função para de funcionar, e não consigo encontrar o erro.

 

Não sei se consegui ser claro em relação ao problema, mas basicamente é isso... utilizo a função para marcar todos os checkbox e ela não funciona se algum checkbox não é exibido pela condição if.

 

Obs: Sei que tem php no código, mas como a função é em Javascript achei melhor abrir o tópico aqui.

 

Valeu desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

this.form.checks

Isso não existe.

 

Tente:


this.form.children

E na função faça uma verificação se o elemento em questão é um input.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado por responder, Henrique.

 

Eu coloquei o "this.form.checks" porque o nome dos checkbox é um array chamado "checks".

 

 

Tentei alterar para "this.form.children" e fiz a verificação na função, mas também não funcionou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.