Ir para conteúdo

POWERED BY:

Arquivado

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

brunozero2

Por que retorna NaN

Recommended Posts

Ae galera to com o codigo abaixo e no final tem de somar os inputs, ele ate mostra, mas precisa marcar mais de uma opção no checkbox, se marcar so uma ele retorna NaN sendo o o valor ta em numero

 

/* aqui inicia a função ao clicar no checkbox */

function checar_acomp() {

 

/* busca quant de acompanhantes*/

var acomp = document.getElementById("txf_n_acompanhantes").value;

for (var i=1;i<=acomp;i++) {

 

/*declaração de variaveis*/

var campo1 = document.getElementById("escuna_acomp_"+i+"");

var campo2 = document.getElementById("historico_acomp_"+i+"");

var campo3 = document.getElementById("cachoeira_acomp_"+i+"");

var campo4 = document.getElementById("igreja_acomp_"+i+"");

 

/* se o checkbox1 for checado, é somado o valor dele */

if(campo1.checked==true) {

valor1=parseFloat(142);

} else {

valor1=parseFloat(0);

}

/* se o checkbox2 for checado, é somado o valor dele */

if(campo2.checked==true) {

valor2=parseFloat(147);

} else {

valor2=parseFloat(0);

}

/* se o checkbox3 for checado, é somado o valor dele */

if(campo3.checked==true) {

valor3=parseFloat(189);

} else {

valor3=parseFloat(0);

}

/* se o checkbox4 for checado, é somado o valor dele */

if(campo4.checked==true) {

valor4=parseFloat(105);

} else {

valor4=parseFloat(0);

}

/*variaveis utilizadas para receber valores de cada checkbox*/

um = valor1;

dois = valor2;

tres = valor3;

quatro = valor4;

 

/* aqui é passado para o input os valores checados */

if(um=="" && dois=="" && tres=="" && quatro=="") {

document.getElementById("somaacomp_"+i+"").value = "";

} else {

total = um+dois+tres+quatro;

document.getElementById("somaacomp_"+i+"").value = ((total) . toFixed(2).replace(".", ","));

 

}

}

 

s1 = parseFloat(document.getElementById("somaacomp_1").value);

s2 = parseFloat(document.getElementById("somaacomp_2").value);

var soma = s1;

var soma2 = s2;

if(soma=="" && soma2=="") {

document.getElementById("totalacomp").value = "";

}else{

somatotal = soma+soma2;

document.getElementById("totalacomp").value = ((somatotal) . toFixed(2).replace(".", ","));

}

 

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro "NaN" geralmente indica incompatibilidade de tipos de variáveis

 

no seu caso, acho que está tentando realizar uma operação matemática entre string e número.

 

dicas:

 

- certifique-se de que os dados provindos de um campo indefinido sejam convertidos para numérico.

Para fazer isso, utilize a função ParseFloat() para números fracionários ou parseInt() para números inteiros.

obs: Em alguns pontos do script está usando ParseFloat, porém, são trechos onde não há necessidade. Portanto, verifique os trechos que recebem dados dos objetos do <form>

 

- certifique-se também de que o valor não está vazio ou nulo

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.