Ir para conteúdo

Arquivado

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

controlapc

Calcular média com campo nulo

Recommended Posts

Boa tarde, estou programando um sistema no qual calcula a média de alguns campos, a questão é que nem sempre todas os valores serão informados e a média deve calcular os campos nos quais existem valores.

Poderia tentar deixar o campo em branco, porém, a função apresenta o erro (NaN) e não executa o calculo.
Alguém poderia me ajudar por favor? (Segue abaixo a função)

 

<script>
function calcularMediaQLSETES() {
var q2 = document.forms['formMediasETEs']['oito'].value;
var q3 = document.forms['formMediasETEs']['nove'].value;
var q4 = document.forms['formMediasETEs']['dez'].value;
var q5 = document.forms['formMediasETEs']['onze'].value;
var q23 = document.forms['formMediasETEs']['doze'].value;
var q6 = document.forms['formMediasETEs']['treze'].value;
var q7 = document.forms['formMediasETEs']['quatorze'].value;
var q8 = document.forms['formMediasETEs']['quinze'].value;
var q9 = document.forms['formMediasETEs']['d_seis'].value;
var q10 = document.forms['formMediasETEs']['d_sete'].value;
var q11 = document.forms['formMediasETEs']['d_oito'].value;

var mqls = (parseFloat(q2) + parseFloat(q3) + parseFloat(q4) + parseFloat(q5) + parseFloat(q23) + parseFloat(q6)
+ parseFloat(q7) + parseFloat(q8) + parseFloat(q9) + parseFloat(q10) + parseFloat(q11))/11;
document.forms['formMediasETEs']['mediaQ_ls'].value = mqls.toFixed(2);
}
</script>

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se resolve:

function SomarValor(){
frm1.vlr_total.value = ((frm1.vlr_1.value*1) + (frm1.vlr_2.value*1) + (frm1.vlr_3.value*1))/3;
}
<form name="frm1">
<input name="vlr_1"><br> 
<input name="vlr_2"><br> 
<input name="vlr_3"><br> 
<input name="vlr_total" readonly><br>
<input type="button" onclick="SomarValor()" value="Somar">

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

santos_s, primeiramente, obrigado pela ajuda!
Resolveu o fato de permitir valor em branco, mas a média continua fixa e o valor interfere no resultado final.
No caso eu tenho 11 campos e a idéia é calcular somente onde tem valor digitado, por exemplo, se eu digitei em 5 campos, será o valor dos 5 campos / 5 na próxima podem ser 7 campos e serão divididos por 7...
Tem como fazer isso? Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Consegui em outro fórum, se alguém precisar da resposta, segue...

Nota 1: <input class="nota" /><br/>
Nota 2: <input class="nota" /><br/>
Nota 3: <input class="nota" /><br/><br/>
Media: <input id="media" readonly/>

JQUERY
$(function(){
$('.nota').change(function(){
var total = 0;
var notas = 0;
$('.nota').each(function(){
var nota = Number(this.value);
if(nota === 0) return;
total = total + nota;
notas++;
})
$('#media').val(total/notas);
});
})

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.