Ir para conteúdo
Fórum Script Brasil
  • 0

Script De Calculo!


Guilherme Strich

Pergunta

Opa,

preciso de uma ajuda de vocês, estou criando um formulário, que vai ser ordens de compras para meu cliente, nela vai ter os dados da empresa e etc...etc...

Num local vai ter campos lado a lado com as seguintes opções:

Quantidade, Referencia, Material, Cor-1°, Material, Cor-2°, Valor $ e Total (Isso um ao lado do outro, e uns 10 campos que podem ser preenchidos abaixo)

Quero saber, se quando eu digitar a quantidade, a referencia, a cor, o material, possa aparecer o valor do material por unidade no campo Valor $ e no campo Total o preço final da compra!

É possivel fazer isso em Java Script?

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

Achei um javaScript que faz isso, mais na hora de au adicionar novos campos, ele para de calcular!

Vejam o script:

<html>
<head><title>Tabela de Preços</title>
<script language="javascript">

var nItens = 2;

function recalculaTotais (frm)
{
   var total = 0;
   for (var i = 0; i < nItens; i++)
   {
      frm.total[i].value = Math.round(frm.preço[i].value * frm.quant[i].value * 100) / 100;
      total += parseFloat(frm.total[i].value);
   }
   frm.totalgeral.value = total;
}
</script>
</head>

<body bgcolor=#888844>
  <h1>Tabela de Preços</h1>
    <form name="f">
      <table>
	<tr><th>Produto<th>Preço<th>Quantidade<th>Total
	<tr><td>Caneta Bic
	<td><input type="text" name="preço" size=6 value="0.20" onfocus='this.form.quant[0].focus()'>
	<td><input type="text" name="quant" size=6 value=""     onchange='recalculaTotais(this.form)'>
	<td><input type="text" name="total" size=6 value=""     onfocus='this.form.quant[1].focus()'>
	<tr><td>Cola Polar
	<td><input type="text" name="preço" size=6 value="1.50" onfocus='this.form.quant[1].focus()'>
	<td><input type="text" name="quant" size=6 value=""     onchange='recalculaTotais(this.form)'>
	<td><input type="text" name="total" size=6 value=""     onfocus='this.form.bot.focus()'>
	<tr><td colspan=4><hr noshade>
	<tr><td><td><td><b>Total :</b>
	<td><input type="text" name="totalgeral"
     size=6 value="" onfocus='this.form.bot.focus()'>
      </table>
    <input type="submit" name="bot" value="Envia">
    <P>
  </form>
</body>
</html>

É exatamente isso que eu preciso, mais apenas preciso adicionar mais, mais 5 Colunas e 10 linhas!

alguém me ajude, que não estou conseguindo fazer!

Link para o comentário
Compartilhar em outros sites

  • 0

Vai ser assim!

O representante da empresa, vai entrar num endereço, onde terá um local pedindo Login e Senha (Já criado em Flash-ActionScript), depois se conferir a senha, ele vai para este formulário, ele preenche os dados, normalmente, coloca a quantidade (Ex: 10), os itens restantes, preenche os preços (Ex: 1.00), Quando ele for preencher os campos abaixo, de um novo pedido, já no campo total, vai aparecendo o resultado (Ex: Quantidade:10, Valor> 1.00, Total: 10).

Entendeu?

E o valor total do final, vai aumentando conforme as se preenchendo os dados,

Link para o comentário
Compartilhar em outros sites

  • 0

Precisava algo igual este (Que estou tentando editar)

<html>
<head><title>Tabela de Preços</title>
<script language="javascript">

var nItens = 2;

function recalculaTotais (frm)
{
   var total = 0;
   for (var i = 0; i < nItens; i++)
   {
      frm.total[i].value = Math.round(frm.preço[i].value * frm.quant[i].value * 100) / 100;
      total += parseFloat(frm.total[i].value);
   }
   frm.totalgeral.value = total;
}
</script>
<style type="text/css">
<!--
.style3 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; }
body {
	background-color: #FFFFFF;
}
-->
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>

<body>
  <h1>Tabela de Preços</h1>
    <form name="f">
      <p>&nbsp;</p>
      <table>
	<tr>
   <th width="36" bgcolor="EEEEEE" class="style3">Pre&ccedil;o
   <th width="75" bgcolor="F8F8F8" class="style3">Quantidade
   <th width="39" bgcolor="#EEEEEE"><span class="style3">Total</span>
   <th width="36">
	<tr>
	<td bgcolor="EEEEEE" class="style3"><input type="text" name="preço" size=6 value=""     onchange='recalculaTotais(this.form)'>
	<td bgcolor="F8F8F8" class="style3"><input type="text" name="quant" size=6 value=""     onchange='recalculaTotais(this.form)'>
	<td bgcolor="#EEEEEE"><input type="text" name="total" size=6 value=""     onfocus='this.form.quant[1].focus()'>
	<tr>
	<td bgcolor="EEEEEE" class="style3"><input type="text" name="preço" size=6 value=""     onchange='recalculaTotais(this.form)'>
	<td bgcolor="F8F8F8" class="style3"><input type="text" name="quant" size=6 value=""     onchange='recalculaTotais(this.form)'>
	<td bgcolor="#EEEEEE"><input type="text" name="total" size=6 value=""     onfocus='this.form.bot.focus()'>
	<tr><td colspan=4><hr noshade>
	<tr bgcolor="CCCCCC"><td>
	<td><td><b class="style3">Total :</b>
	<td><input type="text" name="totalgeral"
     size=6 value="" onfocus='this.form.bot.focus()'>
      </table>
    <input type="submit" name="bot" value="Envia">
    <P>
  </form>
</body>
</html>

Só que mais campos... mais 5 colunas e 10 linhas, até consigo adicionar, mais na hora de colocar o box neles, eles param de funcionar!

Link para o comentário
Compartilhar em outros sites

  • 0

se você quer aumentar o número de colunas é só aumentar e colocar sempre o mesmo nome para essa function funcionar. Ae você quer colocar 10 linhas é só você colocar a variavel nItens = 10. Tenta fazer. Outra coisa que vi foi que os valores não tem formatação, por exemplo 10,00 não funciona e se o cara tiver q digitar centavos?... procure por formatação de valores aqui no forum q você acha bastante coisa... qualquer dúvida posta ae...

Abraço

Crystian

Link para o comentário
Compartilhar em outros sites

  • 0

Veja o codigo abaixo

<html>
	<head>
  <title>Tabela de Preços</title>
  <script language="javascript">

var nItens = 3;

function recalculaTotais (frm)
{
  var total = 0;
  for (var i = 0; i < nItens; i++)
  {
     frm.total[i].value = Math.round(frm.preço[i].value * frm.quant[i].value * 100) / 100;
     total += parseFloat(frm.total[i].value);
  }
  frm.totalgeral.value = total;
}
  </script>
	</head>
	<body bgcolor="#888844">
  <h1>Tabela de Preços</h1>
  <form name="f" ID="Form1">
  	<table ID="Table1">
    <tr>
    	<th>
      Produto<th><th><th><th><th><th>Preço<th>Quantidade<th>Total
              <tr>
              	<td>
              	Caneta Bic
              	<td><input type="text" name="4" size="6" value="" ID="Text4">
              	<td><input type="text" name="5" size="6" value="" ID="Text5">
              	<td><input type="text" name="6" size="6" value="" ID="Text6">
              	<td><input type="text" name="7" size="6" value="" ID="Text8">
              	<td><input type="text" name="8" size="6" value="" ID="Text9">
              	<td><input type="text" name="preço" size="6" value="0.20" onfocus='this.form.quant[0].focus()'
                	ID="Text1">
              	<td><input type="text" name="quant" size="6" value="" onchange='recalculaTotais(this.form)'
                	ID="Text2">
              	<td><input type="text" name="total" size="6" value="" onfocus='this.form.quant[1].focus()'
                	ID="Text3">
              <tr>
              	<td>
              	Lapis
              	<td><input type="text" name="4" size="6" value="" ID="Text10">
              	<td><input type="text" name="5" size="6" value="" ID="Text11">
              	<td><input type="text" name="6" size="6" value="" ID="Text12">
              	<td><input type="text" name="7" size="6" value="" ID="Text13">
              	<td><input type="text" name="8" size="6" value="" ID="Text14">
              	<td><input type="text" name="preço" size="6" value="0.20" onfocus='this.form.quant[1].focus()'
                	ID="Text15">
              	<td><input type="text" name="quant" size="6" value="" onchange='recalculaTotais(this.form)'
                	ID="Text16">
              	<td><input type="text" name="total" size="6" value="" onfocus='this.form.quant[2].focus()'
                	ID="Text17">
              <tr>
              	<td>
              	Borracha
              	<td><input type="text" name="4" size="6" value="" ID="Text18">
              	<td><input type="text" name="5" size="6" value="" ID="Text19">
              	<td><input type="text" name="6" size="6" value="" ID="Text20">
              	<td><input type="text" name="7" size="6" value="" ID="Text21">
              	<td><input type="text" name="8" size="6" value="" ID="Text22">
              	<td><input type="text" name="preço" size="6" value="0.20" onfocus='this.form.quant[2].focus()'
                	ID="Text23">
              	<td><input type="text" name="quant" size="6" value="" onchange='recalculaTotais(this.form)'
                	ID="Text24">
              	<td><input type="text" name="total" size="6" value="" onfocus='this.form.Submit1.focus()' ID="Text25">
              <tr>
              	<td colspan="9"><hr noshade>
              <tr>
              	<td colspan="7">
              	<td><b>Total :</b>
              	<td><input type="text" name="totalgeral" size="6" value="" onfocus='this.form.bot.focus()'
                	ID="Text50">
  	</table>
  	<input type="submit" name="bot" value="Envia" ID="Submit1">
  	<P>
  </form>
	</body>
</html>

Se for isso que você quer fazer, me avise, ai eu te explico o codigo

Agora se não for isto, me explique melhor

t+

Link para o comentário
Compartilhar em outros sites

  • 0
Veja o codigo abaixo

<html>
	<head>
  <title>Tabela de Preços</title>
  <script language="javascript">

var nItens = 3;

function recalculaTotais (frm)
{
  var total = 0;
  for (var i = 0; i < nItens; i++)
  {
     frm.total[i].value = Math.round(frm.preço[i].value * frm.quant[i].value * 100) / 100;
     total += parseFloat(frm.total[i].value);
  }
  frm.totalgeral.value = total;
}
  </script>
	</head>
	<body bgcolor="#888844">
  <h1>Tabela de Preços</h1>
  <form name="f" ID="Form1">
  	<table ID="Table1">
    <tr>
    	<th>
      Produto<th><th><th><th><th><th>Preço<th>Quantidade<th>Total
              <tr>
              	<td>
              	Caneta Bic
              	<td><input type="text" name="4" size="6" value="" ID="Text4">
              	<td><input type="text" name="5" size="6" value="" ID="Text5">
              	<td><input type="text" name="6" size="6" value="" ID="Text6">
              	<td><input type="text" name="7" size="6" value="" ID="Text8">
              	<td><input type="text" name="8" size="6" value="" ID="Text9">
              	<td><input type="text" name="preço" size="6" value="0.20" onfocus='this.form.quant[0].focus()'
                	ID="Text1">
              	<td><input type="text" name="quant" size="6" value="" onchange='recalculaTotais(this.form)'
                	ID="Text2">
              	<td><input type="text" name="total" size="6" value="" onfocus='this.form.quant[1].focus()'
                	ID="Text3">
              <tr>
              	<td>
              	Lapis
              	<td><input type="text" name="4" size="6" value="" ID="Text10">
              	<td><input type="text" name="5" size="6" value="" ID="Text11">
              	<td><input type="text" name="6" size="6" value="" ID="Text12">
              	<td><input type="text" name="7" size="6" value="" ID="Text13">
              	<td><input type="text" name="8" size="6" value="" ID="Text14">
              	<td><input type="text" name="preço" size="6" value="0.20" onfocus='this.form.quant[1].focus()'
                	ID="Text15">
              	<td><input type="text" name="quant" size="6" value="" onchange='recalculaTotais(this.form)'
                	ID="Text16">
              	<td><input type="text" name="total" size="6" value="" onfocus='this.form.quant[2].focus()'
                	ID="Text17">
              <tr>
              	<td>
              	Borracha
              	<td><input type="text" name="4" size="6" value="" ID="Text18">
              	<td><input type="text" name="5" size="6" value="" ID="Text19">
              	<td><input type="text" name="6" size="6" value="" ID="Text20">
              	<td><input type="text" name="7" size="6" value="" ID="Text21">
              	<td><input type="text" name="8" size="6" value="" ID="Text22">
              	<td><input type="text" name="preço" size="6" value="0.20" onfocus='this.form.quant[2].focus()'
                	ID="Text23">
              	<td><input type="text" name="quant" size="6" value="" onchange='recalculaTotais(this.form)'
                	ID="Text24">
              	<td><input type="text" name="total" size="6" value="" onfocus='this.form.Submit1.focus()' ID="Text25">
              <tr>
              	<td colspan="9"><hr noshade>
              <tr>
              	<td colspan="7">
              	<td><b>Total :</b>
              	<td><input type="text" name="totalgeral" size="6" value="" onfocus='this.form.bot.focus()'
                	ID="Text50">
  	</table>
  	<input type="submit" name="bot" value="Envia" ID="Submit1">
  	<P>
  </form>
	</body>
</html>

Se for isso que você quer fazer, me avise, ai eu te explico o codigo

Agora se não for isto, me explique melhor

t+

Muito obrigado!

É exatamente isso, mais eu não sou de copiar e tal, por isso, se não for encomodo, pode me explicar o código, para que eu aprender ele!

Abraços e Obrigado!

Link para o comentário
Compartilhar em outros sites

  • 0

Cara eu não manjo muito biggrin.gif , mas vamos ver o que posso fazer para te explicar

Temos uma rotina que faz a mutiplicação do input preço com o input quant passando este valor para o input total, repare na linha vermelha

Depois salva este o valor desta mutiplicação na variavel total, linha azul

Mas repare na linha verde que temos um loop na variavel "I", ou seja, começa com ela igual a "0" executa o script, soma + 1 no "I" e compara com a variavel "nItens", se for menor continua, se for igual ou maior sai fora do loop

Quando o loop e encerrado, temos na variavel "total" a soma de todos os campos, então é passado para o input totalgeral, repare na linha laranja

Repare que antes da function temos a definição de uma variavel, a nItens, ou seja, é nela que define a quantidade linha que voce tera

function recalculaTotais (frm)

{

var total = 0;

for (var i = 0; i < nItens; i++)

{

frm.total.value = Math.round(frm.preço.value * frm.quant.value * 100) / 100;

total += parseFloat(frm.total.value);

}

frm.totalgeral.value = total;

}

Agora verifique tambem que temos no script frm.total , ou seja, no html temos os input com o a propriedade name="total" , então ao entrar no loop passamos o valor do "I"

Observe que a function recalculaTotais e execultada quando o input quant perde o focu, repare onchange='recalculaTotais(this.form)'

Qualquer coisa pergunta ai

Se expliquei alguma coisa errada, me avisem....

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...