Comparing number always return false

Tags:



I generate a random number with an interval and then I check if the number chooses by the user is the same, but it always returns false

const checkButton = document.getElementById("checkButton");
var rndNumber = RandomNumberGenerator();
checkButton.onclick = CheckNumber;
console.log("rndNumber", rndNumber);

function CheckNumber(rndNumber) {
  var numberChoosed = document.getElementById("numberChoosed").value;
  console.log("rndNumber", rndNumber)
  console.log("numberChoosed", numberChoosed);
  if (numberChoosed == rndNumber) {
    console.log("true");
  } else {
    console.log("False");
  }

}

function RandomNumberGenerator() {
  var min = document.getElementById("bottomNumber").value;
  var max = document.getElementById("topNumber").value;
  return Math.round(Math.random() * (max - min) + min);
}
<button type="button" id="checkButton">Click</button>

<input id="numberChoosed" />
<input id="bottomNumber" value="1"/>
<input id="topNumber" value="110"/>

Answer

Remove the rndNumber from function CheckNumber(rndNumber) { because that is actually the click event on the checkButton

Also a good idea to cast to number since .value is a string.

The == will cast for you but it is no longer up to you then

const checkButton = document.getElementById("checkButton");
var rndNumber = RandomNumberGenerator();
checkButton.onclick = CheckNumber;
console.log("rndNumber", rndNumber);

function CheckNumber() {
  var numberChoosed = document.getElementById("numberChoosed").value;
  console.log("rndNumber", rndNumber)
  console.log("numberChoosed", numberChoosed);
  console.log(+numberChoosed === +rndNumber); // cast to number

}

function RandomNumberGenerator() {
  var min = document.getElementById("bottomNumber").value;
  var max = document.getElementById("topNumber").value;
  return Math.round(Math.random() * (max - min) + min);
}
<button type="button" id="checkButton">Click</button>

<input id="numberChoosed" />
<input id="bottomNumber" value="1"/>
<input id="topNumber" value="110"/>


Source: stackoverflow