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"/>
Advertisement
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"/>