Ir para conteúdo

POWERED BY:

Arquivado

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

deuzinho

[Resolvido] Subtrair campos

Recommended Posts

Estou com um problema, depois de somar vários campos eu preciso que subtraia no final para me dar a diferença, mais não esta funcionando só aparece um tal de NaN

o código está 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

Posta o arquivo completo, com html e js juntos para testarmos, vlw?

 

<html>
<title>Formulario</title>
<style type="text/css">
<!--
.visa {
 color: #F00;
 font-weight: bold;
}
.mb {
 color: #030;
 font-weight: bold;
}
.dn {
 color: #00F;
 font-weight: bold;
}
.total {
 color: #000;
 font-weight: bold;
}
.data {
 color: #FFF;
 font-weight: bold;
}
.aviso {
 font-size: 12px;
}
-->
</style>
<body>
<form name="form" method="post" action="confirmacao.asp">
 
 <br>
 <table width="800" border="0">
 <tr>
 <td width="137" bgcolor="#FF0000" class="data">Data:</td>
 <td width="147"><input type="text" name="data"></td>
 <td width="127"> </td>
 <td width="144"> </td>
 <td width="78"> </td>
 <td width="144"> </td>
 </tr>
 
 <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> 
 
 
 <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>
 
 <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>
 <tr>
 <td class="dn">DN1:</td>
 <td> <input type="text" value="0" name="dn1"></td>
 <td class="dn">DN2:</td>
 <td><input type="text" name="dn2" value="0" id="dn2" onkeyup="soma('dn')" /> 
 <td><span class="dn">DN Total:</span>
 <td class="dn"><input type="text" name="dn_total"></td>
 <td> </td>
 </tr>
 <tr>
 <td bgcolor="#FFFF00" class="total">Total de Somas:</td>
 <td><input type="text" name="total_somas" id="total_somas" onkeyup="soma()"></td>
 <td bgcolor="#FFFF00" class="total">Valor do Fecho:</td>
 <td><input type="text" name="valor_fecho"></td>
 <td bgcolor="#FFFF00"><span class="total">Diferença:</span></td>
 <td><input type="text" name="diferenca" id="diferenca" onkeyup="'diferenca'"></td>
 </tr>
 <tr>
 <td bgcolor="#00FFFF" class="total">Confere com Sage:</td>
 <td><input type="text" name="confere_sage"></td>
 <td bgcolor="#00FFFF" class="total">Razão da diferença:</td>
 <td colspan="3"><input name="razao_dif" type="text" size="60" maxlength="50"></td>
 </tr>
 <tr>
 <td class="visa">Responsável pelo Fecho:</td>
 <td colspan="5"><input name="responsavel" type="text" size="100"></td>
 </tr>
 <tr>
 <td class="visa">Observação / Sugestão:</td>
 <td colspan="5"><input name="obs_sug" type="text" size="100"></td>
 </tr>
 </table>
 <strong class="aviso">Separar as casas decimais por . (ponto) não usar , (virgula)</strong><br>
 <input type="submit" name="Submit" value="Enviar">
</form>
</body>
</html> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seja mais específico em sua dúvida. ^_^

 

Estou com um problema, depois de somar vários campos eu preciso que subtraia no final para me dar a diferença, mais não esta funcionando só aparece um tal de NaN

o código está assim

[01] Conseguiu fazer as somas dos campos?

 

[02] Subtrair o que de quem? Quanto deve ser subtraído? Algum campo em especial?

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existem muitos erros. Tente entender a função.

Organize melhor o teu código. Não se esqueça de atribuir id aos campos que pretende manipular.

<tr>
	<td class="dn">DN1:</td>
	<td> <input type="text" name="dn1" value="0" id="dn1" /></td>
	<td class="dn">DN2:</td>
	<td><input type="text" name="dn2" value="0" id="dn2" onkeyup="soma('dn')" /></td>
	<td><span class="dn">DN Total:</span></td>
	<td class="dn"><input type="text" name="dn_total" value="0" id="dn_total" /></td>
	<td></td>
</tr>
e a função identada ficaria:

<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>
aparece NaN pq o campo valor_fecho não possui valor.

Uma forma de previnir isso, é como já lhe indiquei, começar com value="0" em todos os campos.

 

Faça a atribuição do valor desse campo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seja mais específico em sua dúvida. ^_^

 

Estou com um problema, depois de somar vários campos eu preciso que subtraia no final para me dar a diferença, mais não esta funcionando só aparece um tal de NaN

o código está assim

[01] Conseguiu fazer as somas dos campos?

 

[02] Subtrair o que de quem? Quanto deve ser subtraído? Algum campo em especial?

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

 

Sim os campos foram somados todos com sucesso, o que eu preciso é que ao digitar o valor no campo valor_fecho ele subtraia o campo total_somas para me dar a "diferença" e essa subtração não esta fazendo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Willian desculpe a minha ignorância é que já fiz isso também, mais o campo só fica atribuido 0 até eu digitar o primeiro valor na planilha, dai por diante já aparece o tal do NaN até que o total_somas seja calculado, ai ele aparece o valor igual ao do tatal_soma e não faz a subtração.

<html>
<title>Formulario</title>
<style type="text/css">
<!--
.visa {
	color: #F00;
	font-weight: bold;
}
.mb {
	color: #030;
	font-weight: bold;
}
.dn {
	color: #00F;
	font-weight: bold;
}
.total {
	color: #000;
	font-weight: bold;
}
.data {
	color: #FFF;
	font-weight: bold;
}
.aviso {
	font-size: 12px;
}
-->
</style>
<body>
<form name="form" method="post" action="confirmacao.asp">
    
  <br>
  <table width="800" border="0">
    <tr>
       <td width="137" bgcolor="#FF0000" class="data">Data:</td>
       <td width="147"><input type="text" name="data"></td>
       <td width="127"> </td>
       <td width="144"> </td>
       <td width="78"> </td>
       <td width="144"> </td>
     </tr>
    
     <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>
          
     <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>
             
     <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>
     <tr>
       <td 		class="dn">DN1:</td>
       <td>		<input type="text" value="0" name="dn1"></td>
       <td 		class="dn">DN2:</td>
       <td>		<input type="text" name="dn2" value="0" id="dn2" onKeyUp="soma('dn')" />		       
       <td>		<span class="dn">DN Total:</span>
       <td 		class="dn"><input type="text" name="dn_total"></td>
     </tr>
     <tr>
       <td 		bgcolor="#FFFF00" class="total">Total de Somas:</td>
       <td>		<input type="text" name="total_somas" value="0" id="total_somas" onKeyUp="soma()"></td>
       <td 		bgcolor="#FFFF00" class="total">Valor do Fecho:</td>
       <td>		<input type="text" name="valor_fecho" value="0"></td>
       <td 		bgcolor="#FFFF00"><span class="total">Diferença:</span></td>
       <td>		<input type="text" name="diferenca" value="0" id="diferenca" ></td>
     </tr>
     <tr>
       <td bgcolor="#00FFFF" class="total">Confere com Sage:</td>
       <td><input type="text" name="confere_sage"></td>
       <td bgcolor="#00FFFF" class="total">Razão da diferença:</td>
       <td colspan="3"><input name="razao_dif" type="text" size="60" maxlength="50"></td>
    </tr>
     <tr>
       <td class="visa">Responsável pelo Fecho:</td>
       <td colspan="5"><input name="responsavel" type="text" size="100"></td>
     </tr>
     <tr>
       <td class="visa">Observação / Sugestão:</td>
       <td colspan="5"><input name="obs_sug" type="text" size="100"></td>
     </tr>
   </table>
  <strong class="aviso">Separar as casas decimais por . (ponto) não usar , (virgula)</strong><br>
  <input type="submit" name="Submit" value="Enviar">
</form>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho um formulário que soma vários campos e no final ele tem que subtrair um campo e dar a diferença, mais essa função só está funcionando se eu digitar o valor a ser subtraido antes dos valores a ser somado, se for digitado na sequencia correta que é as somas antes, quando se digita a subtração nada acontece.

 

<html>
<title>Formulario</title>
<style type="text/css">
<!--
.visa {
	color: #F00;
	font-weight: bold;
}
.mb {
	color: #030;
	font-weight: bold;
}
.dn {
	color: #00F;
	font-weight: bold;
}
.total {
	color: #000;
	font-weight: bold;
}
.data {
	color: #FFF;
	font-weight: bold;
}
.aviso {
	font-size: 12px;
}
-->
</style>
<body>
<form name="form" method="post" action="confirmacao.asp">
    
  <br>
  <table width="800" border="0">
    <tr>
       <td width="137" bgcolor="#FF0000" class="data">Data:</td>
       <td width="147"><input type="text" name="data"></td>
       <td width="127"> </td>
       <td width="144"> </td>
       <td width="78"> </td>
       <td width="144"> </td>
     </tr>
    
     <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('valor_fecho').value ) - parseFloat( id('total_somas').value ); }
     </script>
          
     <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" disabled id="visa_total" value="0" />
     </td>
     <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" disabled id="mb_total" value="0" />
     </td>
     </tr>
     <tr>
       <td 		class="dn">DN1:</td>
       <td>		<input type="text" value="0" name="dn1"></td>
       <td 		class="dn">DN2:</td>
       <td>		<input type="text" name="dn2" value="0" id="dn2" onKeyUp="soma('dn')" />		       
       <td>		<span class="dn">DN Total:</span>
       <td 		class="dn"><input name="dn_total" type="text" disabled value="0"></td>
     </tr>
     <tr>
       <td 		bgcolor="#FFFF00" class="total">Total de Somas:</td>
       <td>		<input name="total_somas" type="text" disabled id="total_somas" onKeyUp="soma()" value="0"></td>
       <td 		bgcolor="#FFFF00" class="total">Valor do Fecho:</td>
       <td>		<input type="text" name="valor_fecho" value="0"></td>
       <td 		bgcolor="#FFFF00"><span class="total">Diferença:</span></td>
       <td>		<input name="diferenca" type="text" disabled id="diferenca" value="0" ></td>
     </tr>
     <tr>
       <td bgcolor="#00FFFF" class="total">Confere com Sage:</td>
       <td><input type="text" name="confere_sage"></td>
       <td bgcolor="#00FFFF" class="total">Razão da diferença:</td>
       <td colspan="3"><input name="razao_dif" type="text" size="60" maxlength="50"></td>
    </tr>
     <tr>
       <td class="visa">Responsável pelo Fecho:</td>
       <td colspan="5"><input name="responsavel" type="text" size="100"></td>
     </tr>
     <tr>
       <td class="visa">Observação / Sugestão:</td>
       <td colspan="5"><input name="obs_sug" type="text" size="100"></td>
     </tr>
   </table>
  <strong class="aviso">Separar as casas decimais por . (ponto) não usar , (virgula)</strong><br>
  <input type="submit" name="Submit" value="Enviar">
</form>
</body>
</html>

Alguém por favor pode me dar uma luz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

<html>
<head>
	<title>Formulario</title>
<style type="text/css">
<!--
.visa {
	color: #F00;
	font-weight: bold;
}
.mb {
	color: #030;
	font-weight: bold;
}
.dn {
	color: #00F;
	font-weight: bold;
}
.total {
	color: #000;
	font-weight: bold;
}
.data {
	color: #FFF;
	font-weight: bold;
}
.aviso {
	font-size: 12px;
}
-->
</style>
<script type="text/javascript">
function id( el ){
	return document.getElementById( el );
}
function soma( prefix ){
	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('valor_fecho').value = 0; /* não deu pra entender oque você queria aqui */
	id('diferenca').value = parseFloat( id('valor_fecho').value ) - parseFloat( id('total_somas').value ); 
}
</script> 
</head>
<body>
<form name="form" method="post" action="confirmacao.asp">
  
  <br />
	<table width="800" border="0">
	<tr>
		<td width="137" bgcolor="#FF0000" class="data">Data:</td>
		<td width="147"><input type="text" name="data"></td>
		<td width="127"> </td>
		<td width="144"> </td>
		<td width="78"> </td>
		<td width="144"> </td>
	</tr>          
	<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 type="text" name="visa_total" id="visa_total" value="0" disabled="disabled" /></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 type="text" name="mb_total" id="mb_total" value="0" disabled="disabled" /></td>
	</tr>
<tr>
	<td class="dn">DN1:</td>
	<td><input type="text" value="0" name="dn1" id="dn1" /></td>
	<td class="dn">DN2:</td>
	<td><input type="text" name="dn2" value="0" id="dn2" onkeyup="soma('dn')" /></td>
	<td><span class="dn">DN Total:</span></td>
	<td class="dn"><input type="text" name="dn_total" id="dn_total" value="0" disabled="disabled" /></td>
</tr>
<tr>
	<td bgcolor="#FFFF00" class="total">Total de Somas:</td>
	<td><input name="total_somas" type="text" id="total_somas" value="0" disabled="disabled" /></td>
	<td bgcolor="#FFFF00" class="total">Valor do Fecho:</td>
	<td><input type="text" name="valor_fecho" id="valor_fecho" value="0" /></td>
	<td bgcolor="#FFFF00"><span class="total">Diferença:</span></td>
	<td><input name="diferenca" type="text" id="diferenca" value="0" disabled="disabled" /></td>
</tr>
<tr>
	<td bgcolor="#00FFFF" class="total">Confere com Sage:</td>
	<td><input type="text" name="confere_sage"></td>
	<td bgcolor="#00FFFF" class="total">Razão da diferença:</td>
	<td colspan="3"><input name="razao_dif" type="text" size="60" maxlength="50"></td>
</tr>
<tr>
	<td class="visa">Responsável pelo Fecho:</td>
	<td colspan="5"><input name="responsavel" type="text" size="100"></td>
</tr>
<tr>
	<td class="visa">Observação / Sugestão:</td>
	<td colspan="5"><input name="obs_sug" type="text" size="100" /></td>
</tr>
</table>
  <strong class="aviso">Separar as casas decimais por . (ponto) não usar , (virgula)</strong><br>
  <input type="submit" name="Submit" value="Enviar" />
</form>
</body>
</html>
procure estudar HTML e Javascript.

Existiam erros absurdos na tua marcação. Além de você aparentemente não ter entendido como está funcionando o script.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro amigo é justamente isso que estou tentando fazer, estudar e aprender, só não me adianta muito você falar que existiam erros absurdos e não me dizer o que errei.

Entrei no forum do imasters por que quando vivia no Brasil ele era o melhor que existia, e um forum não serve justamente pra você tirar as dúvidas e aprender?

O que eu entendi da função script foi que primeiro soma os campos que eu necessitava depois tem que subtrair de um determinado campo para me dar a diferença, o que estava acontecendo é que a subtração só é feita se eu digitar o campo final antes das somas, essa é minha grande dúvida

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu refiz o teu script, corrigindo os erros.

Dentre eles:

 

-> Javascript fora do <head> do documento (não chega a ser um erro, mas é uma boa prática que ele fique antes do <body> )

-> Faltavam IDs nos campos

-> Identação ruim

 

Oque é 'o campo final'?

 

Está se referindo ao Valor do Fecho ??

Se for isso, faça outra função, para o cálculo, e aplique novamente no keyup desse campo somente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minha saga continua, meu grande problema é nessa linha <td><input type="text" name="valor_fecho" id="valor_fecho" value="0" /></td> pois esse campo é suposto subtrair o total_somas, mais só funciona se eu colocar o valor a ser subtraido primeiro, se eu colocar os valores a serem somados antes ele não faz a subtração.

 

<html>
<head>
<title>Formulario</title>
<style type="text/css">
<!--
.visa {
	color: #F00;
	font-weight: bold;
}
.mb {
	color: #030;
	font-weight: bold;
}
.dn {
	color: #00F;
	font-weight: bold;
}
.total {
	color: #000;
	font-weight: bold;
}
.data {
	color: #FFF;
	font-weight: bold;
}
.aviso {
	font-size: 12px;
}
-->
</style>
    
     <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('valor_fecho').value ) - parseFloat( id('total_somas').value ); }
     </script>
     </head>
     <body>
     <form name="form" method="post" action="confirmacao.asp">
    
  <br>
     <table width="800" border="0">
    <tr>
       <td width="137" bgcolor="#FF0000" class="data">Data:</td>
       <td width="147"><input type="text" name="data"></td>
       <td width="127"></td>
       <td width="144"></td>
       <td width="78"></td>
       <td width="144"></td>
     </tr>     
     
     <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 type="text" name="visa_total" id="visa_total" value="0" disabled="disabled" /></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 type="text" name="mb_total" id="mb_total" value="0" disabled="disabled" /></td>
     </tr>
     
     <tr>
     <td class="dn">DN1:</td>        
     <td><input type="text" value="0" name="dn1" id="dn1" /></td>        
     <td class="dn">DN2:</td>        
     <td><input type="text" name="dn2" value="0" id="dn2" onkeyup="soma('dn')" /></td>        
     <td><span class="dn">DN Total:</span></td>        
     <td class="dn"><input type="text" name="dn_total" id="dn_total" value="0" disabled="disabled" /></td>
     </tr>
          
     <tr>
     <td bgcolor="#FFFF00" class="total">Total de Somas:</td>        
     <td><input name="total_somas" type="text" id="total_somas" value="0" disabled="disabled" /></td>        
     <td bgcolor="#FFFF00" class="total">Valor do Fecho:</td>        
     <td><input type="text" name="valor_fecho" id="valor_fecho" value="0" /></td>        
     <td bgcolor="#FFFF00"><span class="total">Diferença:</span></td>        
     <td><input name="diferenca" type="text" id="diferenca" value="0" disabled="disabled" /></td>
     </tr>
     
     <tr>
     <td bgcolor="#00FFFF" class="total">Confere com Sage:</td>        
     <td><input type="text" name="confere_sage"></td>        
     <td bgcolor="#00FFFF" class="total">Razão da diferença:</td>        
     <td colspan="3"><input name="razao_dif" type="text" size="60" maxlength="50"></td>
     </tr>
     
     <tr>
     <td class="visa">Responsável pelo Fecho:</td>        
     <td colspan="5"><input name="responsavel" type="text" size="100"></td>
     </tr>
     
     <tr>
     <td class="visa">Observação / Sugestão:</td>        
     <td colspan="5"><input name="obs_sug" type="text" size="100" /></td>
     </tr>
   
   </table>
  <strong class="aviso">Separar as casas decimais por . (ponto) não usar , (virgula)</strong><br>
  <input type="submit" name="Submit" value="Enviar">
</form>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta levar mais a sério oq eu digo:

Se for isso, faça outra função, para o cálculo, e aplique novamente no keyup desse campo somente.

 

Te falei oque fazer.

<html>
<head>
<title>Formulario</title>
<style type="text/css">
<!--
.visa {
        color: #F00;
        font-weight: bold;
}
.mb {
        color: #030;
        font-weight: bold;
}
.dn {
        color: #00F;
        font-weight: bold;
}
.total {
        color: #000;
        font-weight: bold;
}
.data {
        color: #FFF;
        font-weight: bold;
}
.aviso {
        font-size: 12px;
}
-->
</style>
    
	<script type="text/javascript">
		function id( el ){        
			return document.getElementById( el );
		}
		function soma( prefix ){        
			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('valor_fecho').value ) - parseFloat( id('total_somas').value ); 
		}
		function valorFecho(){
			id('diferenca').value = parseFloat( id('valor_fecho').value ) - parseFloat( id('total_somas').value );
		}
	</script>
     </head>
     <body>
     <form name="form" method="post" action="confirmacao.asp">
    
	<br>
	<table width="800" border="0">
	<tr>
		<td width="137" bgcolor="#FF0000" class="data">Data:</td>
		<td width="147"><input type="text" name="data"></td>
		<td width="127"></td>
		<td width="144"></td>
		<td width="78"></td>
		<td width="144"></td>
	</tr>     

	<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 type="text" name="visa_total" id="visa_total" value="0" disabled="disabled" /></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 type="text" name="mb_total" id="mb_total" value="0" disabled="disabled" /></td>
	</tr>

	<tr>
		<td class="dn">DN1:</td>        
		<td><input type="text" value="0" name="dn1" id="dn1" /></td>        
		<td class="dn">DN2:</td>        
		<td><input type="text" name="dn2" value="0" id="dn2" onkeyup="soma('dn')" /></td>        
		<td><span class="dn">DN Total:</span></td>        
		<td class="dn"><input type="text" name="dn_total" id="dn_total" value="0" disabled="disabled" /></td>
	</tr>

	<tr>
		<td bgcolor="#FFFF00" class="total">Total de Somas:</td>        
		<td><input name="total_somas" type="text" id="total_somas" value="0" disabled="disabled" /></td>        
		<td bgcolor="#FFFF00" class="total">Valor do Fecho:</td>        
		<td><input type="text" name="valor_fecho" id="valor_fecho" value="0" onkeyup="valorFecho()" /></td>        
		<td bgcolor="#FFFF00"><span class="total">Diferença:</span></td>        
		<td><input name="diferenca" type="text" id="diferenca" value="0" disabled="disabled" /></td>
	</tr>

	<tr>
		<td bgcolor="#00FFFF" class="total">Confere com Sage:</td>        
		<td><input type="text" name="confere_sage"></td>        
		<td bgcolor="#00FFFF" class="total">Razão da diferença:</td>        
		<td colspan="3"><input name="razao_dif" type="text" size="60" maxlength="50"></td>
	</tr>

	<tr>
		<td class="visa">Responsável pelo Fecho:</td>        
		<td colspan="5"><input name="responsavel" type="text" size="100"></td>
	</tr>

	<tr>
		<td class="visa">Observação / Sugestão:</td>        
		<td colspan="5"><input name="obs_sug" type="text" size="100" /></td>
	</tr>
   
   </table>
  <strong class="aviso">Separar as casas decimais por . (ponto) não usar , (virgula)</strong><br>
  <input type="submit" name="Submit" value="Enviar">
</form>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta levar mais a sério oq eu digo:

 

Se for isso, faça outra função, para o cálculo, e aplique novamente no keyup desse campo somente.

 

Te falei oque fazer.

Tinha feito isso mais achei que estava erra pois não funcionou esqueci de colocar o keyup

 

Mais agora esta subtraindo perfeito só que os campos que somam e que subtraem aqueles com disabled="disabled" para que os dados não sejam digitados estão indo para o banco de dados com valor 0 em vez de ir com o falor da equação!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em vez de usar disabled="disabled"

use:

readonly="readonly"

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.