I'm making a simple random number generator game using JS and HTML. In this game you can set minimum and maximum values of random numbers.
However, when setting the variable and recording the result, an impossible number appears. For example, if I set the minimum value to 50 and the maximum value to 100, it will show answers like 58650 , 16750 , or 31450 . I noticed that the smallest number you set always appears at the end. I've tried changing the format and changing the code but nothing seems to work.
Does anyone know the solution to this problem? Your help is greatly appreciated, thank you! !
Home.html (probably not the problem):
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Random Number Generator</title> <link rel="stylesheet" href="style.css"> </head> <body> <h1 class="Title">Random Number Generator</h1> <hr> <div class="container"> <p> Enter 2 numbers that you want the random number to be in between</p> <p id="result" class="hide"></p> <div class="container2"> <input id="inputmin" class="numinput" type="text"> <p>-</p> <input id="inputmax" class="numinput" type="text"> </div> <button id="submitbtn" class="submitbtn">Generate</button> </div> <script src="/Home.js"></script> </body> </html>
Home.js:
const usermininput = document.getElementById("inputmin") const usermaxinput = document.getElementById("inputmax") const usersubmitBtn = document.getElementById("submitbtn") const result = document.getElementById("result") function random(min, max) { return Math.floor(Math.random() * max) + min; } usersubmitBtn.addEventListener("click", () =>{ const usermin = usermininput.value const usermax = usermaxinput.value console.log(random(usermin,usermax)) })
The
performs string concatenation instead of addition). This can be done using the unary plus operator, i.e.
value
attribute of the input element is a string, so you need to convert it to a number first (otherwise,const usermin = usermininput.value
andconst usermax = usermaxinput.value
.Alternatively, use
and access the
valueAsNumber
property.