Ir para conteúdo

POWERED BY:

Arquivado

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

deuzinho

[Resolvido] Soma de campos

Recommended Posts

Gente to com outra pequena grande duvida.

 

Tenho um formulário com 3 campos e preciso que a soma dos dois primeiros apareça no terceiro automaticamente sem que precise dar refresh

se tiver como a medida que se digite no primeiro campo ja apareça no terceiro seria espetacular.

Estou quebrando a cabeça ja usei varios codigos e nada dá certo.

Aguardo retorno

Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa javascript que é melhor

 

Movido de ASP http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Javascript/DHTML

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque um onKeypress="Soma();" no seu segundo input

ai na função soma crie

function soma(){
   valor = document.nome_formulario.campo1.value + document.nome_formulario.campo2.value;
   document.nome_formulario.campo3.value = valor;

}

Não sei se ta certo, mais é por essa lógica

Compartilhar este post


Link para o post
Compartilhar em outros sites

To fazendo alguma coisa que não bate, o código esta assim:

<td class="visa">Visa1:</td>
       <td><input type="text" name="visa1"></td>
       <td class="visa">Visa2:</td>
       <td><input type="text" name="visa2"></td>
       <td class="visa">Visa Total:</td>
       <td><input name="visa_total" function soma(){   valor = form.visa1.value + form.visa2.value; form.visa3.value = valor;} ></td>

mais não esta somando, o campo visa3 não demostra o resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

São 2 partes.

-> Declaração da função

-> Chamada

<script type="text/javascript">
function id( el ){
	return document.getElementById( el );
}
function soma(){
	if( id('visa2').value!='' && id('visa1').value!='' ) 
		id('visa_total').value = parseFloat( id('visa1').value ) + parseFloat( id('visa2').value ); 
} 
</script>

	<td class="visa">Visa1:</td>
	<td><input type="text" name="visa1" id="visa1" /></td>
	<td class="visa">Visa2:</td>
	<td><input type="text" name="visa2" id="visa2" onkeyup="soma()" /></td>
	<td class="visa">Visa Total:</td>
	<td><input name="visa_total" id="visa_total" /></td>

Compartilhar este post


Link para o post
Compartilhar em outros sites

São 2 partes.

-> Declaração da função

-> Chamada

<script type="text/javascript">
function id( el ){
	return document.getElementById( el );
}
function soma(){
	if( id('visa2').value!='' && id('visa1').value!='' ) 
		id('visa_total').value = parseFloat( id('visa1').value ) + parseFloat( id('visa2').value ); 
} 
</script>

	<td class="visa">Visa1:</td>
	<td><input type="text" name="visa1" id="visa1" /></td>
	<td class="visa">Visa2:</td>
	<td><input type="text" name="visa2" id="visa2" onkeyup="soma()" /></td>
	<td class="visa">Visa Total:</td>
	<td><input name="visa_total" id="visa_total" /></td>

 

Willian, matou a pau meu amigo, só tenho mais uma duvida não querendo abusar

 

Tenho como estipular que caso por exemplo não seja digitado nenhum valor no campo visa2 apareça automaticamente o zero?

 

Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim. Tenta fazer ^_^

Te ajudará no aprendizado. você só precisa pensar em qual momento você sabe que 'nada foi digitado'. :lol:

 

Ou então, você já pode começar o campo com zero.

 <td><input type="text" name="visa2" value="0" id="visa2" onkeyup="soma()" /></td>
atribuindo 0 na propriedade value.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa tava tudo perfeito, tudo funcionando, quando adcionei a segunda linha virou nada, agora nada mais acontece

<script type=
 "text/javascript">function id( el )
 { return document.getElementById( el );}function soma(1){ 
 if( id('visa2').value!='' && id('visa1').value!='' ) 
 id('visa_total').value = parseFloat( id('visa1').value ) + parseFloat( id('visa2').value ); } 
 
 "text/javascript">function id( el )
 { return document.getElementById( el );}function soma(2){ 
 if( id('mb2').value!='' && id('mb1').value!='' ) 
 id('mb_total').value = parseFloat( id('mb').value ) + parseFloat( id('mb2').value ); }
 
 </script> 
 <td class="visa">Visa1:</td> 
 <td><input type="text" name="visa1" id="visa1" />
 </td> <td class="visa">Visa2:
 </td> <td><input type="text" name="visa2" id="visa2" onkeyup="soma(1)" />
 </td> <td class="visa">Visa Total:
 </td> <td><input name="visa_total" id="visa_total" />
 </td>
 <tr>
 
 <td class="mb">MB1:</td> 
 <td><input type="text" name="mb1" id="mb1" />
 </td> <td class="mb">MB2:
 </td> <td><input type="text" name="mb2" id="mb2" onkeyup="soma(2)" />
 </td> <td class="mb">MB Total:
 </td> <td><input name="mb_total" id="mb_total" />
 </td>
Já experimentei colocalar soma(1) e soma(2) e tudo mais e agora não soma nem o primeiro nem o segundo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não amigo. Além do erro de sintaxe, tem um erro de lógica praticamente ai.

 

você não precisa redeclarar a função nesse caso. Tenta entender o script. E procure manter um minimo de estrutura do HTML.

<script type="text/javascript">
function id( el ){ 
 return document.getElementById( el );
}

function soma( prefix ){
 if( id( prefix+'2' ).value!='' && id( prefix+'1' ).value!='' )
 id( prefix+'_total' ).value = parseFloat( id( prefix+'1').value ) + parseFloat( id( prefix+'2' ).value );
}
</script>

<table>
 <tr>
 <td class="visa">Visa1:</td>
 <td><input type="text" name="visa1" value="0" id="visa1" /></td>
 <td class="visa">Visa2:</td>
 <td><input type="text" name="visa2" value="0" id="visa2" onkeyup="soma('visa')" /></td>
 <td class="visa">Visa Total:</td>
 <td><input name="visa_total" id="visa_total" /></td>
 </tr>
 <tr>
 <td class="mb">MB1:</td>
 <td><input type="text" name="mb1" value="0" id="mb1" /></td>
 <td class="mb">MB2: </td> 
 <td><input type="text" name="mb2" value="0" id="mb2" onkeyup="soma('mb')" /></td>
 <td class="mb">MB Total:</td>
 <td><input name="mb_total" id="mb_total" /></td>
 </tr>
</table>
:lol:

 

Pegou? Agora sim, temos um parâmetro que funciona. Ele recebe uma string, que seria o 'prefixo' do campo que queremos somar.

Já que a regra, está sendo:

 

campo_total = campo1 + campo2;

 

sendo que precisamos apenas passar no onkeyup a string: 'campo', para a função soma.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok capitei a mensagem, ficou assim:

 <script type="text/javascript">
	 function id( el ){  return document.getElementById( el );}

function soma( prefix )	 {
 if( id( prefix+'2' ).value!='' && id( prefix+'1' ).value!='' ) 
	 id( prefix+'_total' ).value = parseFloat( id( prefix+'1').value ) + parseFloat( id( prefix+'2' ).value );

          id('total_somas').value = parseFloat( id('visa_total').value ) + parseFloat( id('mb_total').value ) + parseFloat( id('dn_total').value )
	 id('diferenca').value = parseFloat( id('total_somas').value ) - parseFloat( id('valor_fecho').value ); 
}
	 
     </script>

fiz o id "total_somas" por essa lógica e funcionou perfeitamente só que quando chegou no id"diferenca" que é uma subtração, ela não faz só aparece na tela NaN, eu não posso usar a mesma lógica para subtração?

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.