0

I've been losing my mind now for a couple of hours as I can't find out what I'm doing wrong here. Trying to see if the input is equal to 3, if so then show a window saying "The number is equal to 3". Here's the HTML and Javascript:

    <input type="number" name="number" id="number">
    <button id="btn" onclick="checkNumber()">Button</button>
    <div>
        <span id="label"></span>
    </div>
<script>
    var number = document.getElementById("number").value;
    function checkNumber() {
        if (number === 3) {
            window.alert("The number is equal to 3");
        }
    }
</script>
Eirik
  • 3
  • 1

3 Answers3

0

Input value are strings, you can change them to number by adding "+" sign.

var number = document.getElementById("number");
function myFunc() {
 if (+number.value === 3) {
            window.alert("The number is equal to 3");
        }
}
  
<input type="number" name="number" id="number">
    <button id="btn" onclick="myFunc()">Button</button>
    <div>
        <span id="label"></span>
    </div>
<script>
  
</script>
otejiri
  • 1,017
  • 6
  • 20
0

The number variable should typecasted, i.e converted to number type from string type

function checkNumber() {
  var number = document.getElementById("number").value;
  var value = Number(number);
  if (value === 3) {
    alert("The number is equal to 3");
  } else {
    alert("The number is not equal to 3");
  }
}
<html>
  <body>
    <input id="number" name="number" type="number" />
    <button id="btn" type="button" onclick="checkNumber()">Check</button>
  </body>
</html>
dEBA M
  • 457
  • 5
  • 19
0

You are using === which checks both for type and value. the input received from the user is a string while 3 is a Number.

To solve that, you must first convert the input value to Number and then compare.

Also, i would add the reference for the element outside of the function and check for the current value each time the function gets called.

    var element = document.getElementById("number");
    function checkNumber() {
        const numberAsString = element.value;
        const number = Number(numberAsString);
        if (number === 3) {
            window.alert("The number is equal to 3");
        }
    }
   <input type="number" name="number" id="number">
    <button id="btn" onclick="checkNumber()">Button</button>
    <div>
        <span id="label"></span>
    </div>
Ran Turner
  • 14,906
  • 5
  • 47
  • 53