2
respostas

Esse codigo esta dando NaN, nao vejo erro , alguem pode me ajudar

# 
html lang="pt">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Exercício7</title>
</head>
<body>
<h2>Frequência</h2> 

<input id="ipt_nome" type="text" placeholder="nome do aluno">
<input id="ipt_aulastot" type="text" placeholder="quantidade de aulas">
<input id="ipt_faltas" type="text" placeholder="quantidade de faltas">
<button style="height: 75px;" onclick="calcularfreq()">Calcular frequencia</button><br><br>

<div id="div_msg"></div>
<!-- ID DIV ALTURA , BACKGROUND VERMELHO , WIDTH 0, DEPOIS NO SCRIPT ALTERA O STYLE.WIDHT    --> 


</body>
</html>



<script>


function calcularfreq(){

var nome = ipt_nome;
var aulasTotais = ipt_aulastot;
var faltas = ipt_faltas;
var resultado = faltas - aulasTotais

div_msg.innerHTML = `Olá ${nome.value}! Sua frequência ${resultado} %  `



}







</script>
2 respostas

Fala Enzo, tudo bem?

O problema é que na variável faltas, nome e aulasTotais você está utilizando valores que não existem, acredito que o que você queira fazer é capturar o valor dos inputs ipt_nome, ipt_faltas e ipt_aulastot, para isso você pode utilizar o docuement.querySelector para selecionar um elemento no html, e value para obtermos o valor daquele elemento, dessa maneira:


<script>


function calcularfreq(){

var nome = document.querySelector('#ipt_nome');
var aulasTotais =  document.querySelector('#ipt_aulastot').value;
var faltas =  document.querySelector('#ipt_faltas').value;
var resultado = faltas - aulasTotais

div_msg.innerHTML = `Olá ${nome.value}! Sua frequência ${resultado} %  `



}


</script>

Como você pode ver, utilizamos o document.querySelector para selecionar um elemento no nosso html, e logo após utilizamos value para obter o valor daquele input, dessa maneira seu código funcionará normalmente, caso queira entender mais sobre o querySelector que demonstrei, você pode ler na documentação:

Espero ter ajudado, bons estudos :D

Oi Enzo, tudo certo?

Isso acontece pois você esqueceu de utilizar o .value nas variáveis aulasTotais e faltas, logo, essas variáveis estão guardando o elemento HTML e não o valor. Portanto, você precisa fazer essa modificação:

var aulasTotais = ipt_aulastot.value;
var faltas = ipt_faltas.value;

Agora, deve funcionar como o esperado. Espero ter ajudado, bons estudos =)