Manipular Checkbox com JS - pegar valor

3,814 views
Skip to first unread message

Caio Mancini

unread,
Nov 6, 2007, 8:23:32 AM11/6/07
to arq...@googlegroups.com, ajax-...@googlegroups.com
Olá pessoal tudo bem?

Mais uma vez venho ao socorro de vocês.
Estou tentando pegar os valores de um conjunto de checkbox em uma página por meio de JavaScript. Depois retornarei estes valores para um INPUT TEXT na página que chamou este formulário. Mas não está dando muito certo não a maneira de pegar os valores selecionados no form.
É possível ou somente podemos verificar se estão checados ou não?

Este código abaixo sempre está retornando apenas "undefined".

Se alguém puder dar um help fico grato.

<script language="javascript" type="text/javascript">
    function voltar() {
      //pega os valores
      var valor=document.form2.tag.value;

       
      //retorna os valores para a janela pai
      window.opener.document.form1.campo1.value=valor;
      
      //apenas para testar
      window.alert(valor);

      //window.close();
    }
  </script>

  <form action="#" method="post" name="form2" id="form2">
    Tags:<br />
    <input type="checkbox" name="tag" value="1" />Valor 1<br />
    <input type="checkbox" name="tag" value="2" />Valor 2<br />
    <input type="checkbox" name="tag" value="3" />Valor 3<br />
    <input type="checkbox" name="tag" value="4" />Valor 4<br />
    <input type="checkbox" name="tag" value="5" />Valor 5<br />
    <input type="checkbox" name="tag" value="6" />Valor 6<br />
    <input type="button" name="ok" value="ok" onclick="javascript:voltar()" />
  </form>

Até mais pessoal.


--
Caio M. S. Mancini
MSN: kaiou...@yahoo.com.br
ICQ: 177165688
AIM: caiomalkavianos
Skype: caiomalkavianos
http://caiomancini.blogspot.com

Rafael Camillis Tairum

unread,
Nov 6, 2007, 5:50:29 PM11/6/07
to ajax-...@googlegroups.com
Olá Caio eu estou dando uma olhada no seu problema, mas eu não entendi direito o que vc quer fazer. Veja se é isto:


"Estou tentando pegar os valores de um conjunto de checkbox em uma página por meio de JavaScript."

1 - o usuário escolhe uma ou mais opções no checkbox e envia quais os checkboxs ele marcou para a próxima pagina, seria práticamente o tradicional "submit" porém sem mandar os dados pro servidor, mandaria os dados diretamente pra página anterior.

"Depois retornarei estes valores para um INPUT TEXT na página que chamou este formulário. Mas não está dando muito certo não a maneira de pegar os valores selecionados no form. "

2 - Aí é que danou tudo depois dessa parte eu já não entendi mais nada, veja se pode ser isso pegar os dados de uma página e carregá-los na página anterior? Ou carregar os dados de um formulário num popup?!!!?, está um pouco confuso.

Caio tenta ser um pouco mais objetivo que isso facilita pra eu poder te ajudar.

Abraço

Camillis

Em 06/11/07, Caio Mancini < caio.manc...@gmail.com> escreveu:
Olá pessoal tudo bem?

Mais uma vez venho ao socorro de vocês.

Caio Mancini

unread,
Nov 6, 2007, 8:34:51 PM11/6/07
to ajax-...@googlegroups.com
Olá Camillis, obrigado pela atenção.

É o seguinte:
1 - tenho um formulário com um link "pesquisar" que abre um pop-up
2 - neste pop-up trago do BD vários nomes e carrego eles em forma de checkboxes para o usuário selecionar quantos ele quiser.
3 - após este processo e submeter o form os dados que ele escolheu vão parar concatenados em um campo de texto.

Na verdade é uma escolha de "tags". Mas o problema está em pegar os valores de todos os checkboxes marcados em forma de vetor (ou array) em uma variável para retorná-lo à página anterior.

Não sei se consegui me expressar bem

-> Aqui está o form "pai"
<form action="#" method="post" name="form1" id="form1">
<label for="testepai">Campo1:</label><input type="text" size="10" name="campo1" id="campo1" />
<a href="javascript:janelaSecundaria(' pop.htm')">Pesquisa</a><br />
<input type="submit" name="ok" value="ok" />
</form>


-> E agora está o código da página pop-up, dei uma revisada, mas ainda não traz nada....
<script language="javascript" type="text/javascript">
function voltar() {
var marcados = ' ';
var chk = document.getElementsByTagName ('tag');
if(chk.lenght>1) {
for (i=0; i<chk.lenght; i++) {
if (chk[i].checked==true)
marcados += chk[i].value + " ";
}
}
else {
if (chk.checked==true)
marcados += chk.value + " ";
}
window.alert (marcados);
window.opener.document.form1.campo1.value=marcados;

return marcados;
}
</script>

<form action="#" method="post" name="form2" id="form2">
Tags:<br />
<input type="checkbox" name="tag[]" id="tag" value="texto1" />Valor 1<br />
<input type="checkbox" name="tag[]" id="tag" value="texto2" />Valor 2<br />
<input type="checkbox" name="tag[]" id="tag" value="texto3" />Valor 3<br />
<input type="checkbox" name="tag[]" id="tag" value="texto4" />Valor 4<br />
<input type="checkbox" name="tag[]" id="tag" value="texto5" />Valor 5<br />
<input type="checkbox" name="tag[]" id="tag" value="texto6" />Valor 6<br />

<input type="button" name="ok" value="ok" onclick="javascript:voltar()" />
</form>
</body>
</html>











--
<b>Caio M. S. Mancini</b>

Rafael Camillis Tairum

unread,
Nov 9, 2007, 6:29:08 AM11/9/07
to ajax-...@googlegroups.com
Oi Caio agora eu entendi =). Vc pode fazer o seguinte, depois do usuario ter selecionado os checkboxes e clicado no botao de submeter chama uma nova requisição via ajax para o servidor e atualiza a página anterior, no caso o campo input text, com os dados do checkbox. Não sei se dá pra fazer o que vc quer fazer sem precisar fazer uma requisição no servidor. Vou conversar com o pessoal do meu trampo e dar uma olhada no código que vc enviou e logo mai te envio uma resposta.
 
Abraço 
 
Camillis  

 
Em 06/11/07, Caio Mancini <caio.manc...@gmail.com> escreveu:
Olá Camillis, obrigado pela atenção.

Juliano

unread,
Dec 7, 2007, 3:40:18 PM12/7/07
to AJAX-BRASIL
Boa tarde!

Não sei se ja consegui resolver, de qualquer forma vai minha solução:

function voltar() {

var marcados = ' ';

// Aqui voce referencia o objeto form
var chk = document.form2;

// Aqui voce varre todos os elementos do form
for(i=0;i<chk.length;i++){

// Aqui voce checa o nome do elemento e se ele esta checado,
if(chk.elements[i].name=='tag[]' &&
chk.elements[i].checked==true)
marcados += chk.elements[i].value + " "; // se estiver checado
pega o valor
}

window.alert (marcados);
window.opener.document.form1.campo1.value=marcados;

return marcados;

}

Acho que era isso que voce queria.

[ ]'s

Juliano Coelho

On 6 nov, 22:34, "Caio Mancini" <caio.mancini.lis...@gmail.com> wrote:
> Olá Camillis, obrigado pela atenção.
>
> É o seguinte:
> 1 - tenho um formulário com um link "pesquisar" que abre um pop-up
> 2 - neste pop-up trago do BD vários nomes e carrego eles em forma de
> checkboxes para o usuário selecionar quantos ele quiser.
> 3 - após este processo e submeter o form os dados que ele escolheu vão parar
> concatenados em um campo de texto.
>
> Na verdade é uma escolha de "tags". Mas o problema está em pegar os valores
> de todos os checkboxes marcados em forma de vetor (ou array) em uma variável
> para retorná-lo à página anterior.
>
> Não sei se consegui me expressar bem
>
> -> Aqui está o form "pai"
> <form action="#" method="post" name="form1" id="form1">
> <label for="testepai">Campo1:</label><input type="text" size="10"
> name="campo1" id="campo1" />
> <a href="javascript:janelaSecundaria('pop.htm')">Pesquisa</a><br />
> <input type="submit" name="ok" value="ok" />
> </form>
>
> -> E agora está o código da página pop-up, dei uma revisada, mas ainda não
> traz nada....
> <script language="javascript" type="text/javascript">
> function voltar() {
> var marcados = ' ';
> var chk = document.getElementsByTagName('tag');
> MSN: kaiou200...@yahoo.com.br
Reply all
Reply to author
Forward
0 new messages