Pass an indeterminate value of an input to Javascript

Asked

Viewed 98 times

3

I’ve seen a lot of similar questions but none that would solve my problem. The script basically is the following, there are 3 inputs, and the values of the inputs who will say is the user (the user will make the average of his notes). In the script I am using prompt to declare the values, but I want the values to be typed in Inputs on the page.

Javascript:

function verNota(){

    var nota_1 = parseFloat(prompt("Digite sua primeira nota:"));
    var nota_2 = parseFloat(prompt("Digite sua segunda nota:"));
    var nota_3 = parseFloat(prompt("Digite sua terceira nota:"));

    var nota_parcial = (nota_1 + nota_2 + nota_3) / 3;

if (nota_parcial < 5){
    if(nota_1 == nota_2 && nota_1 == nota_3){
        nota_4 = 15 - nota_2 - nota_3;
    }
    if(nota_1 < nota_2 && nota_1 < nota_3){
        nota_4 = 15 - nota_2 - nota_3;
    }
    if(nota_2 < nota_1 && nota_2 < nota_3){
        nota_4 = 15 - nota_1 - nota_3;
    }
    if(nota_3 < nota_1 && nota_3 < nota_2){
        nota_4 = 15 - nota_1 - nota_2;
    }
    if(nota_parcial < 3){
        alert("Sua nota é: " + nota_parcial + ". Você está reprovado!")
    }
    else{
        alert("Sua nota é: " + nota_parcial + ". Você está parcialmente reprovado.");
        alert("Para ser aprovado você precisa tirar: " + nota_4 + " na quarta prova!");
    }
}
if (nota_parcial >= 5){
    alert("Sua nota é " + nota_parcial + ". Você está aprovado!");
}
}


HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title></title>
</head>
<body>

    <input type="number" id="nota_1">
    <input type="number" id="nota_2">
    <input type="number" id="nota_3">

    <input type="submit" id="submitBtn" onclick="verNota()" value="Testar Notas">

    <script src="script.js"></script>

</body>
</html>

inserir a descrição da imagem aqui

1 answer

4


Then for you to get the values by input, just get the elements through a id for example and so take your values, failed to declare tbm the variable nota_4. I believe you are learning Javascript, a good exercise now for you would be to replace this lot of if by a switch-case maybe:

function verNota() {

  var nota_1 = document.getElementById('nota_1').value;
  var nota_2 = document.getElementById('nota_2').value;
  var nota_3 = document.getElementById('nota_3').value;
  var nota_4;

  var nota_parcial = parseFloat(nota_1) + parseFloat(nota_2) + parseFloat(nota_3) / 3;

  if (nota_parcial < 5) {
    if (nota_1 == nota_2 && nota_1 == nota_3) nota_4 = 15 - nota_2 - nota_3;
    if (nota_1 < nota_2 && nota_1 < nota_3) nota_4 = 15 - nota_2 - nota_3;
    if (nota_2 < nota_1 && nota_2 < nota_3) nota_4 = 15 - nota_1 - nota_3;
    if (nota_3 < nota_1 && nota_3 < nota_2) nota_4 = 15 - nota_1 - nota_2;
    if (nota_parcial < 3) alert("Sua nota é: " + nota_parcial + ". Você está reprovado!")
    else {
      alert("Sua nota é: " + nota_parcial + ". Você está parcialmente reprovado.");
      alert("Para ser aprovado você precisa tirar: " + nota_4 + " na quarta prova!");
    }
  }
  if (nota_parcial >= 5) alert("Sua nota é " + nota_parcial + ". Você está aprovado!");
}
<input type="number" id="nota_1">
<input type="number" id="nota_2">
<input type="number" id="nota_3">

<input type="submit" id="submitBtn" onclick="verNota()" value="Testar Notas">

  • Thanks for the help! There’s only one thing I don’t know if you’ve forgotten or gone unnoticed. In the var of the partial nota_loat, all parseFloat must be between parenthesis, since 3 is only dividing parseFloat(nota_3). I noticed but already made the appropriate changes. Thanks again!

Browser other questions tagged

You are not signed in. Login or sign up in order to post.