Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript表单/将随机生成的数字与用户输入进行比较_Javascript_Forms - Fatal编程技术网

javascript表单/将随机生成的数字与用户输入进行比较

javascript表单/将随机生成的数字与用户输入进行比较,javascript,forms,Javascript,Forms,我试图将随机生成的数字与用户输入的数字(通过HTML中的表单)进行比较。加载页面时,JavaScript函数立即执行,而不是等待用户在表单中输入数字。此外,表单输入似乎没有任何作用 这是我的HTML: <!DOCTYPE html> <html> <head> <title>Hot Or Cold</title> <script type ="text/javascript" src="https://ajax.googleapi

我试图将随机生成的数字与用户输入的数字(通过HTML中的表单)进行比较。加载页面时,JavaScript函数立即执行,而不是等待用户在表单中输入数字。此外,表单输入似乎没有任何作用

这是我的HTML:

<!DOCTYPE html>
<html>
<head>
<title>Hot Or Cold</title>
<script type ="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script src="app.js" type="text/javascript"></script>
</head>
<body>
<div id="gameBox">
<p>Enter a number between 1 and 100</p>
<input type="text" name="userinput" id="userinput" maxlength="3" autocomplete="off"/>
<input type ="submit" name="submit" id="submit" class="button"/>
</div>
</form>
</body>
</html>

冷热
输入一个介于1和100之间的数字

和我的JavaScript代码:

var computer = Math.floor(Math.random()*100);

var user = document.getElementById("#userinput");

function game(user, computer){
    if (user == computer) {
        alert("You picked the correct number!");
    }
    else if (user > computer) {
        alert("Too high.");
    }
    else if (user < computer) {
        alert("Too low.");
    }
}

game();
var computer=Math.floor(Math.random()*100);

var user=document.getElementById(“#userinput”); 功能游戏(用户、计算机){ 如果(用户==计算机){ 警报(“您选择了正确的号码!”); } else if(用户>计算机){ 警惕(“过高”); } else if(用户<计算机){ 警惕(“过低”); } } 游戏();
它没有按您所期望的方式工作,因为您的submit按钮没有做任何事情,事实上,当页面加载时,您正在调用您的函数。 删除JavaScript的最后一行,调用

game();
将“提交”按钮更改为此

<input type=button onclick=game(); class=submit value=Submit>

因为js不会在ID之前使用哈希,比如jquery,表单值在解析之前都是字符串。

您需要使用事件处理程序,以便在提交表单时调用您的函数,如下所示:

document.getElementById('myform').addEventListener('submit', function(e){
    var user = document.getElementById("userinput").value;

    game(user, computer);

    e.preventDefault();
});

我修复了你的代码。

我正在编写完整的代码,希望你能理解

<!DOCTYPE html>
<html>
<head>
<body>
<h1> Game </h1>
<input type="number" id="id1">
<button type="button"
onclick=" game()">
Click me.</button>

<script>
var computer = Math.round(Math.random()*100);
console.log(computer);
var user=document.getElementById('id1').value;
function game(){
if(user == computer)
{
alert("yay! Good Work");
}
else{
alert("Sorry Not Matched");
}
}
</script>
</body>
</head>
</html>

游戏
点击我。
var computer=Math.round(Math.random()*100);
控制台日志(计算机);
var user=document.getElementById('id1')。值;
函数游戏(){
如果(用户==计算机)
{
警惕(“耶!干得好”);
}
否则{
警报(“对不起,不匹配”);
}
}

无法将HTML元素与数字进行比较。您希望将元素的值解析为一个数字。您还需要处理click事件。user=document.getElementById(“userinput”)。值,getElementById中的否,在JQueryTanks中用于输入。当我尝试使用这段代码时,我得到了一个未捕获的类型错误:无法调用null的方法“addEventListener”。我猜它指的是表单?我去掉了getElementbyId(“myform”)(并保持了代码的其余部分不变),现在它可以工作了。
document.getElementById('myform').addEventListener('submit', function(e){
    var user = document.getElementById("userinput").value;

    game(user, computer);

    e.preventDefault();
});
<!DOCTYPE html>
<html>
<head>
<body>
<h1> Game </h1>
<input type="number" id="id1">
<button type="button"
onclick=" game()">
Click me.</button>

<script>
var computer = Math.round(Math.random()*100);
console.log(computer);
var user=document.getElementById('id1').value;
function game(){
if(user == computer)
{
alert("yay! Good Work");
}
else{
alert("Sorry Not Matched");
}
}
</script>
</body>
</head>
</html>