Ir para conteúdo

POWERED BY:

Arquivado

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

Tunder

Somar campos text.

Recommended Posts

Primeiramente parabéns ae para os novos moderadores do JavaScript meio atrasado mais ainda em tempo.Bom eu frequento bastante o forum do php e naum entendo muita coisa de JavaScript, gostaria de saber como faço para somar campos de um formulário sem ter que submeter a validação do php.ex:campo1 campo2 campo3 campo4 com a soma dos anterioresdigito algum valor no campo1 e quando saio do mesmo o valor já apareça no campo 4, após preencher o campo2 apareça a soma dos dois e assim por diante....procurei a manhã toda e naum encontrei, talvez não tenha pesquisado corretamente.grato pela atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

<form name="exercicio"><input type="text" name="v1" onblur="calcular('+');"><br><input type="text" name="v2" onblur="calcular('+');"><br><input type="text" name="v3" onblur="calcular('+');"><br><input type="text" name="vtotal" value="0"><br> </form><script language="JavaScript">function calcular(operacao) { var v1 = document.exercicio.v1.value; var v2 = document.exercicio.v2.value; var v3 = document.exercicio.v3.value; var total= eval(v1 + operacao + v2 + operacao + v3) ; document.exercicio.vtotal.value=total; }</script>consegui fazer, mais o calculo só ocorre quando passo pelo ultimo campo. Gostaria que o calculo comece apos digitar o primeiro campo, alguém sabe?

Compartilhar este post


Link para o post
Compartilhar em outros sites

<script language="JavaScript">function calcular(operacao){var v1 = document.exercicio.v1.value == "" ? 0 : document.exercicio.v1.value;var v2 = document.exercicio.v2.value == "" ? 0 : document.exercicio.v2.value;var v3 = document.exercicio.v3.value == "" ? 0 : document.exercicio.v3.value;var total= eval(v1 + operacao + v2 + operacao + v3);document.exercicio.vtotal.value=total;}</script>
deu certim, quando eu crescer quero ser igual a você tmferreira... brigado valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

seguinte: essa função para somar campos text só funciona com até 10 campos?pq eu tenho um formulário com uns 35 campos que devem ser somados, más quando ultrapassa o valor de 10 campos não consigo fazer com que funcione corretamente, o que pode ser?aparece no campo vtotal NAN onde deveria aparecer o resultado da soma pq?obrigado, e desculpe a ignorância.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você deve estar fazendo algo errado. Posta a função e os campos.

valeu tmferreira, depois que você disse que eu estava errando em algo, eu procurei ninunciosamente no meu código e constatei que eu estava duplicando um campo do meu form por isso que não estava funcionando.estou tentando usar a formatação mais não estou conseguindo.<script language="JavaScript">function calcula(op){var v1 = document.cad.v1.value == "" ? 0 : document.cad.v1.value;var v2 = document.cad.v2.value == "" ? 0 : document.cad.v2.value;var v3 = document.cad.v3.value == "" ? 0 : document.cad.v3.value;var total= eval(v1 + op + v2);document.cad.v3.value=total;}</script><script language="JavaScript">var valores = { v1: "", v2: "", v3: ""// ARRAY COM OS CAMPOS QUE O SCRIPT ATUARÁ}function formataValor(campo, tammax, event) { this.getKey = function(event) { return event?(event.keyCode?event.keyCode:(event.which?event.which:event.charCode)):null; } this.replaceNumpad = function(key) { if (key > 95 && key < 106) return key-96; else return String.fromCharCode(key); } var key = this.getKey(event); var caract = replaceNumpad(key); var tam = valores[campo].length; if (key != 8) { var rule = /[^0-9]/.test(caract); if (tam < tammax) if (!rule) { valores[campo] += caract; tam++; } } else { valores[campo] = valores[campo].substring(0,valores[campo].length-1); tam--; } if ( tam <= 2 ) document.form[campo].value = valores[campo]; if ( (tam > 2) && (tam <= 5) ) document.form[campo].value = valores[campo].substr( 0, tam - 2 ) + ',' + valores[campo].substr( tam - 2, tam ); if ( (tam >= 6) && (tam <= 8) ) document.form[campo].value = valores[campo].substr( 0, tam - 5 ) + '.' + valores[campo].substr( tam - 5, 3 ) + ',' + valores[campo].substr( tam - 2, tam ); if ( (tam >= 9) && (tam <= 11) ) document.form[campo].value = valores[campo].substr( 0, tam - 8 ) + '.' + valores[campo].substr( tam - 8, 3 ) + '.' + valores[campo].substr( tam - 5, 3 ) + ',' + valores[campo].substr( tam - 2, tam ); if ( (tam >= 12) && (tam <= 14) ) document.form[campo].value = valores[campo].substr( 0, tam - 11 ) + '.' + valores[campo].substr( tam - 11, 3 ) + '.' + valores[campo].substr( tam - 8, 3 ) + '.' + valores[campo].substr( tam - 5, 3 ) + ',' + valores[campo].substr( tam - 2, tam ); if ( (tam >= 15) && (tam <= 17) ) document.form[campo].value = valores[campo].substr( 0, tam - 14 ) + '.' + valores[campo].substr( tam - 14, 3 ) + '.' + valores[campo].substr( tam - 11, 3 ) + '.' + valores[campo].substr( tam - 8, 3 ) + '.' + valores[campo].substr( tam - 5, 3 ) + ',' + valores[campo].substr( tam - 2, tam ); if (key != 9) return false; }</script><form method="POST" name="form"><input type="text" name="v1" size="23" maxlength="15" onblur="calcula('+');" onKeyDown="return formataValor(this.name, 13, event)" style="text-align: right" /><input type="text" name="v2" size="23" maxlength="17" onblur="calcula('+');" onKeyDown="return formataValor(this.name, 13, event)" style="text-align: right" /><input type="text" name="v3" size="23" maxlength="15" onKeyDown="return formataValor(this.name, 13, event)" style="text-align: right" /></form>onde estou errando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Claudio é melhor criar um topico para voce pois este é de 2006 e os usuarios podem nao estar mais participando do forum

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Pesquise pelo método toFixed().

 

Cumprimentos,

webflex

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.