Javascript 在数学游戏中检查答案赢了';不执行
这是我正在制作的一个数学练习游戏,它使用随机函数来改变数学题的数量。用户将在文本框中输入答案,然后单击名为“检查”的按钮检查答案。Javascript 在数学游戏中检查答案赢了';不执行,javascript,html,Javascript,Html,这是我正在制作的一个数学练习游戏,它使用随机函数来改变数学题的数量。用户将在文本框中输入答案,然后单击名为“检查”的按钮检查答案。fillElements()函数正在工作,但是当我单击“检查”时,无法从程序中获得响应。到目前为止,我已经整理了许多错误,但这个问题我看不见,也看不懂 <body onload="fillElements()"> <form action="math.html"> <ul> <li id="num"> </
fillElements()
函数正在工作,但是当我单击“检查”时,无法从程序中获得响应。到目前为止,我已经整理了许多错误,但这个问题我看不见,也看不懂
<body onload="fillElements()">
<form action="math.html">
<ul>
<li id="num"> </li>
<li> +</li>
<li id="num2"> </li>
<li> =</li>
<li><input type="text" name="answer" id="answer" /></li>
</ul>
<button type="button" onclick="validate()">Check</button>
</form>
<script src="javaScript/math.JS"></script>
</body>
您必须获得要比较的输入的
值,而不是输入本身。
因此,请替换以下内容
var userAnswer= number(document.getElementById('answer'));
与
您必须获得要比较的输入的值,而不是输入本身。
因此,请替换以下内容
var userAnswer= number(document.getElementById('answer'));
与
它不是number()
而是number()
工作代码
HTML
<form action="math.html">
<ul>
<li id="num"></li>
<li> +</li>
<li id="num2"></li>
<li> =</li>
<li><input type="text" name="answer" id="answer" /></li>
</ul>
<button type="button" onclick="validate();">Check</button>
</form>
编辑:不要使用
var totalCorrect= 0;
var totalIncorrect= 0;
因为如果你得到一个分数,那么它将打印无穷
=>数学四舍五入(1/0)代码>尝试
var totalCorrect= 1;
var totalIncorrect= 1;
它不是number()
而是number()
工作代码
HTML
<form action="math.html">
<ul>
<li id="num"></li>
<li> +</li>
<li id="num2"></li>
<li> =</li>
<li><input type="text" name="answer" id="answer" /></li>
</ul>
<button type="button" onclick="validate();">Check</button>
</form>
编辑:不要使用
var totalCorrect= 0;
var totalIncorrect= 0;
因为如果你得到一个分数,那么它将打印无穷
=>数学四舍五入(1/0)代码>尝试
var totalCorrect= 1;
var totalIncorrect= 1;
Javascript区分大小写,因此需要使用Math.round
,而不是Math.round
:
var score = Math.round(totalCorrect/totalIncorrect);
要在以后使用变量,需要在函数外部声明它们:
var rand, rand2;
function fillElements() {
firstNum = ['0','1','2','3','4','5','6','7','8','9'];
secondNum = ['0','1','2','3','4','5','6','7','8','9'];
rand = Math.floor((Math.random()*9)+1);
rand2= Math.floor((Math.random()*9)+1);
var el= document.getElementById('num');
el.textContent = firstNum[rand];
var el2= document.getElementById('num2');
el2.textContent = secondNum[rand2];
}
要从输入中获取值,需要使用value
属性。要将其转换为数字,请使用数字
,而不是数字
:
var userAnswer = Number(document.getElementById('answer').value);
要检查答案,请使用之前设置的变量。您尚未创建任何变量num
和num2
if (rand + rand2 === userAnswer) {
Javascript区分大小写,因此需要使用Math.round
,而不是Math.round
:
var score = Math.round(totalCorrect/totalIncorrect);
要在以后使用变量,需要在函数外部声明它们:
var rand, rand2;
function fillElements() {
firstNum = ['0','1','2','3','4','5','6','7','8','9'];
secondNum = ['0','1','2','3','4','5','6','7','8','9'];
rand = Math.floor((Math.random()*9)+1);
rand2= Math.floor((Math.random()*9)+1);
var el= document.getElementById('num');
el.textContent = firstNum[rand];
var el2= document.getElementById('num2');
el2.textContent = secondNum[rand2];
}
要从输入中获取值,需要使用value
属性。要将其转换为数字,请使用数字
,而不是数字
:
var userAnswer = Number(document.getElementById('answer').value);
要检查答案,请使用之前设置的变量。您尚未创建任何变量num
和num2
if (rand + rand2 === userAnswer) {
打开浏览器的javascript控制台,然后再次尝试运行它。对于大多数浏览器,F12键将显示和隐藏控制台。如果您的代码不正确,您将看到错误显示。弹出浏览器的javascript控制台,然后再次尝试运行。对于大多数浏览器,F12键将显示和隐藏控制台。如果您的代码不正确,将显示错误。谢谢!,我不知道。我在语句末尾添加了.value,代码仍然无法执行。我忍不住想可能是我的html方面出了问题。我可以刷新页面并用新的数字填充“num”和“num2”元素,但我无法让算法工作,或者让我的函数validate()工作。它不是number()
它是number()
我假设number
是他的自定义函数@蒂姆·柯林斯。如果这是正确答案,请选择它谢谢!,我不知道。我在语句末尾添加了.value,代码仍然无法执行。我忍不住想可能是我的html方面出了问题。我可以刷新页面并用新的数字填充“num”和“num2”元素,但我无法让算法工作,或者让我的函数validate()工作。它不是number()
它是number()
我假设number
是他的自定义函数@蒂姆·柯林斯。如果这是正确答案,请选择它。非常感谢!。。。。我唯一需要更改的是window.onload=function(){fillElements()}改为window.onload=fillElements();但再次感谢你!非常感谢你!。。。。我唯一需要更改的是window.onload=function(){fillElements()}改为window.onload=fillElements();但再次感谢你!