Jump to content


Photo

On Click Somar Checkbox (array)


  • Faça o login para participar
3 replies to this topic

#1 danilodepolli

danilodepolli

    Doutor

  • Usuários
  • 987 posts
  • Sexo:Não informado

Posted 11/07/2006, 09:09

Srs, bom dia!

Tenho um array de checkbox onde check[1], check[2], etc possuem seus valores ,2,3,6,4 etc.

Quando clicar, quero que o script percorra todos os checks e faça a soma, mas ele não faz isso e não retorna erro algum... o que pode ser?

<script>

function Somar(){

var total = 0;
var i = 1;
nb = document.form.check.length;

for(i=0;i<document.form.check.length;i++){
	
	if(document.form.check[i].checked){
	total += document.form.check[i].value;
}
}

   document.getElementById('pttotal').value = total;
}
</script>

Abraços!
Danilo Depolli
danilo@camphost.com.br
CAMPHOST - 1º MES GRATIS EM QUALQUER PLANO! HOSPEDAGEM WEB
QUER PATROCINIO FREE? ENTRE EM CONTATO
ICQ: 7695319
MSN: danilodepolli@bol.com.br

#2 bdoweb

bdoweb

    Super Veterano

  • Usuários
  • 1641 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 11/07/2006, 09:52

Coloquei seu laço assim:
for(i=0;i<document.form.check.length();i++){

ps.: movi para o lugar certo JavaScript
Quer ajuda seus amigo e ainda ganhar uma graninha?
Acesse agora mesmo http://yeapiz.com

#3 danilodepolli

danilodepolli

    Doutor

  • Usuários
  • 987 posts
  • Sexo:Não informado

Posted 11/07/2006, 10:08

Blz.
Cara, ainda não deu certo..

O html do form desta forma está corretta?

<input name='check[1]' id='check[1]' type='checkbox' value='5' class='radio' onclick="java script: Somar();" />Possui veículo próprio?<br>
<input name='check[2]' id='check[2]' type='checkbox' value='5' class='radio' onclick="java script: Somar();" />Possui display próprio?<br>
<input name='check[3]' id='check[3]' type='checkbox' value='5' class='radio' onclick="java script: Somar();" />É fornecedor Exclusivo?<br>

Por que ele não esta nem modificando o form text.
Danilo Depolli
danilo@camphost.com.br
CAMPHOST - 1º MES GRATIS EM QUALQUER PLANO! HOSPEDAGEM WEB
QUER PATROCINIO FREE? ENTRE EM CONTATO
ICQ: 7695319
MSN: danilodepolli@bol.com.br

#4 recycled

recycled

    Turista

  • Usuários
  • 50 posts
  • Sexo:Não informado
  • Localidade:Florianópolis/SC
  • Interesses:Aprender e ensinar o pouco que sei :)

Posted 15/07/2006, 03:26

tenta isso :)
deve ser +- o que você queria.

<form name="frm" id="frm" onsubmit="return false;">
<input name='check[]' id='check[]' type='checkbox' value='5' class='radio' onclick="Somar();" />Possui veículo próprio?<br>
<input name='check[]' id='check[]' type='checkbox' value='12' class='radio' onclick="Somar();" />Possui display próprio?<br>
<input name='check[]' id='check[]' type='checkbox' value='10' class='radio' onclick="Somar();" />É fornecedor Exclusivo?<br>

<input name="total_valor" type="text" />
</form>
<script>
total = 0; //toal é zero no começo
function Somar(){
var form = document.forms[0]; //pega o primeiro form q aparecer
	for (var i=0;i < form.elements.length;i++) //checa o numero de elementos no form
	{
		if(form.elements[i].type == "checkbox") //procura somente pelos 'checkbox'
		{
			checa = form.elements[i].getAttribute("id"); //pega o atributo ID de cada checkbox
			if(checa == "check[]" && (form.elements[i].checked)){ //compara pra ver se está marcado e se o nome é check[] (o que vc deu)
				total = (parseInt(total) + parseInt(form.elements[i].value)); //transforma em Integer pra poder somar certo
			}
		}
	}
	form.total_valor.value = total; //atualiza o campo

}
</script>

abraços B)
| will - d.sign&c..odes
| www.neuronio.org
| fotolog.net/recycled

é isso aí :D




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq