Ken
Ken

Reputation: 65

Undefined output when adding inputs in javascript

Trying to make a BMR calculator as a homework assignment. I think i figured most of it out, but i get "undefined" as output in my output field. Here is the code:

<input class="boks" placeholder="vekt i kg" id="vekt" type="text">

<input class="boks" placeholder="høyde i cm" id="hoyde" type="text">

<input class="boks" placeholder="alder" id="alder" type="text">

<button id="beregn" onclick="utregning()">Regn ut din BMR</button>

<input class="boks" placeholder="Din BMR" id="output" type="text" 
readonly="true">

js:

var konstant = 66.5;

var vekt = parseInt(document.getElementById("vekt").value);

var vektutr = vekt*13.75;

var hoyde = parseInt(document.getElementById("hoyde").value);

var hoydeutr = hoyde*5.003;

var alder = parseInt(document.getElementById("alder").value);

var alderutr = alder*6.755;

var sum = +konstant + +vektutr + +hoydeutr - +alderutr;

function utregning() {

document.getElementById("output").value = sum;

}

Upvotes: 0

Views: 60

Answers (2)

Ferdinando
Ferdinando

Reputation: 964

try this code: i tried and it's works fine.

<!DOCTYPE html>
<html>

    <head>
        <title>
            My Web Page
        </title>

    <script>
        function utregning() {
var konstant = 66.5;

var vekt = parseInt(document.getElementById("vekt").value);

var vektutr = vekt*13.75;

var hoyde = parseInt(document.getElementById("hoyde").value);

var hoydeutr = hoyde*5.003;

var alder = parseInt(document.getElementById("alder").value);

var alderutr = alder*6.755;

var sum = +konstant +vektutr +hoydeutr - alderutr;

document.getElementById("output").value = sum;

}   
    </script>

    </head>

<body>

<input class="boks" placeholder="vekt i kg" id="vekt" type="text">

<input class="boks" placeholder="høyde i cm" id="hoyde" type="text">

<input class="boks" placeholder="alder" id="alder" type="text">

<button id="beregn" onclick="utregning()">Regn ut din BMR</button>

<input class="boks" placeholder="Din BMR" id="output" type="text" 
readonly="true">

</body>


</html>

Upvotes: 0

brk
brk

Reputation: 50291

You need to get all the values from input inside the function, because the code outside the function will execute before calling utregning and at that time the value of the input field will be empty

var konstant = 66.5;



function utregning() {
  var vekt = parseInt(document.getElementById("vekt").value);

  var vektutr = vekt * 13.75;

  var hoyde = parseInt(document.getElementById("hoyde").value);

  var hoydeutr = hoyde * 5.003;

  var alder = parseInt(document.getElementById("alder").value);

  var alderutr = alder * 6.755;

  var sum = +konstant + +vektutr + +hoydeutr - +alderutr;

  document.getElementById("output").value = sum;

}
<input class="boks" placeholder="vekt i kg" id="vekt" type="text">

<input class="boks" placeholder="høyde i cm" id="hoyde" type="text">

<input class="boks" placeholder="alder" id="alder" type="text">

<button id="beregn" onclick="utregning()">Regn ut din BMR</button>

<input class="boks" placeholder="Din BMR" id="output" type="text" readonly="true"> js:

Upvotes: 1

Related Questions