Boa noite. Estou tentando ajustar o código do sistema que efetua calculo de icm com as informações do usuário, antes as informações eram informadas por prompt. A interface está pronta, e o botão chama a funçao de calculo, assim como a exibiçao de resultados. Porém, ele nao esta reconhecendo os inputs. Como devo identificar no codigo para que as funçoes reconhecam os valores dos inputs? Segue codigo atual abaixo:
html
<!DOCTYPE html> <html lang="pt-br"> <meta charset="UTF-8"> <head> <link rel="stylesheet" href="reset.css"> <link rel="stylesheet" href="style.css"> <title>Cálculo de IMC</title> </head> <body> <div class="infos"> <div class="titulo"> <h1>- Calculo de ICM -</h1> </div> <p><strong>* </strong>Insira seu primeiro nome:</p><input id="campo1"></br> <p><strong>* </strong>Insira seu peso(Ex: se "<strong>84,5kg</strong>", coloque "<strong>84.5</strong>"):</p><input id="campo2"></br> <p><strong>* </strong>Insira sua altura(Ex: se possui "<strong>1,70m</strong>", coloque "<strong>1.70</strong>"):</p><input id="campo3"></br> </div> <div class="botao"> <button><p>>> Calcular! <<</p></button> </div> <script> function imprimeFrase(frase){ document.write(frase); } function bemVindo(){ alert("Seja bem-vindo, usuário! Através desta tela você conseguirá calcular seu IMC!") } //função para pular linha. para usar basta digitar "pulaLinha()" function pulaLinha(){ imprimeFrase("<br>"); } bemVindo(); let nome = document.querySelector("campo1"); let peso = document.querySelector("campo2"); let altura = document.querySelector("campo3"); //função de calculo do IMC. para usar basta digitar "calculoIMC("var peso, var altura")" function calculoIMC (){ var imc = peso.value / (altura.value * altura.value); return imc; } function alertaResultados(nome, peso, altura){ alert(nome + ", segue o valor de suas medidas, junto do valor final do seu IMC!"); pulaLinha(); alert("Seu peso atual é de " + peso +"Kg."); pulaLinha(); alert("Sua altura atual é de " + altura +" metros."); pulaLinha(); } //função que calcula o IMC e imprime o valor, junto do recomendado. //Primeiramente vai imprimir o peso e altura em tela. Em seguida irá //salvar em uma variavel o calculo do IMC para que seja possível salvar em tela. //e por final é feito uma comparação se o usuário deve ou não ir no médico. function resultadoIMC(nome, peso, altura){ alertaResultados(nome, peso, altura); var valorIMC = calculoIMC (peso, altura); alert("O IMC atual é de " + valorIMC +"."); pulaLinha(); if(valorIMC <= 18.5 ){ imprimeFrase("Você precisa cuidar da saude. Recomendo que procure um médico!"); } if (valorIMC > 18.5 && valorIMC <=35){ imprimeFrase("Você possui o IMC dentro da média. Mantenha seus hábitos!"); } if (valorIMC > 35){ imprimeFrase("Você está acima da média, Recomendo que procure um médico!"); } } let button = document.querySelector("button"); button.onclick = resultadoIMC; </script> <main> </main> <footer> </footer> </body> </html>
css
`
.infos{ text-align: left; margin-left: 15px; margin-top: 15px; }
.titulo{ margin-bottom: 15px; font-style: bold; font-size: 20px; }
p{ margin-bottom: 5px; }
input{ margin-bottom: 18px; width: 60px; }
.botao{ text-align: left; margin-left: 15px; margin-top: 5px;
}
.botao p{
text-align: center;
margin-top: 5px;
font-style: bold;
font-size: 18px;
}
`