[Resolvido] Java Script + JSF: selectAllCheckBox

3 respostas
lidianycs

Olá pessoal, nao sei qse nada de java script.
Estou tentando fazer com que um script selecione todos os checkbox de uma lista , o problema é que esses checkbox são separados em um grupo de tabelas, pois são gerados diniamicamente com JSF.

Para selecionar todos os checkbox da página esse código funciona:

var checkflag = "false";
 
function selectAllCheckBox() {
    var e = document.getElementsByTagName("input");
    var i;

    if (checkflag == "false") {
            for ( i = 0; e.length >=i; i++) {
                    if (e[i].type == "checkbox"){ e[i].checked = true; }
            }
            checkflag = "true";
    } else {
            for ( i = 0; e.length >=i; i++) {
                    if (e[i].type == "checkbox"){ e[i].checked = false; }
            }
            checkflag = "false";
    }
}

Mas como faço para selecionar o checkbox por grupo ou tabela, o mal todo é que com jsf fica ruim pra pegar os checkbox pelo id, some idea?

Eu tentei isso aq:

var checkflag = "false";
 
function selectAllCheckBox() {
var table = document.getElementsByTagName("table");
var i;
var j;
    for ( j = 0; table.length >=j; j++) {
        var e = table[j].getElementsByTagName("input");
        if (checkflag == "false") {
                for ( i = 0; e.length >=i; i++) {
                        if (e[i].type == "checkbox"){ e[i].checked = true; }
                }
                checkflag = "true";
        } else {
                for ( i = 0; e.length >=i; i++) {
                        if (e[i].type == "checkbox"){ e[i].checked = false; }
                }
                checkflag = "false";
        }
    }
}

Alguém pode ajudar???
:wink:
Thanks!

3 Respostas

lidianycs

Estou pensando aq, eu gerar uma div dinâmica e pegar essa div pelo id (que eu vou atribuir e não o JSF) e depois os elementos filhos dela, mas como eu passou esse id dinâmico da div pro javascript?
Some ideas?
Estou usando onclick, para chamar a função…
Tou cega em javascript!!!
Agradeço a ajuda!
:wink:
Abraço!

lidianycs

:wink:
E aí pessoal?
Será que funciona isso aí?
Se houver uma solução parecida com a4j eu aceito tb, pq estou perdida…
:stuck_out_tongue:
please!!!

lidianycs

Como disse no post anterior, tinha a idéia de capturar os elementos de uma div dinâmica, alterei o script e ficou da seguinte forma:

<script type="text/javascript">
 
var checkflag = "false";
 
function selectAllCheckBox(divs) {
    var div = document.getElementById(divs);
    var e = div.getElementsByTagName("input");
   
    var i;

    if (checkflag == "false") {
            for ( i = 0; e.length >=i; i++) {
                    if (e[i].type == "checkbox"){ e[i].checked = true; }
            }
            checkflag = "true";
    } else {
            for ( i = 0; e.length >=i; i++) {
                    if (e[i].type == "checkbox"){ e[i].checked = false; }
            }
            checkflag = "false";
    }
}
                              </script>

Aì é só chamar a função e passar o id da div:

<a href="javascript:selectAllCheckBox('#{component.label}');" style="text-decoration: underline" >Todos</a>

Como eu disse estou utilizando esse artifício pq preciso selecionar os checkbox um grupo de cada vez, por decisão da interface.
Caso seja pra selecionar todos da página a primeira função funciona!
Qualquer dúvida…
:smiley:

Criado 16 de agosto de 2008
Ultima resposta 18 de ago. de 2008
Respostas 3
Participantes 1