您好我正在努力解决我在学校需要的解决问题的网页,但到目前为止,我仍然坚持使用if语句进行计算。 到目前为止我所拥有的。
<script>
var randomNumberA = Math.round((Math.random() * 50) +1)
var randomNumberB = Math.round((Math.random() * 50) +1)
document.write('He runs at ' + randomNumberA + 'm/s which took him ' + randomNumberB + 's. How far did he run?');
var distance = randomNumberA * randomNumberB
function Submit()
{
var answer = document.getElementById('answer')
if(distance == true){
alert("Congrats! You got it right!");
} else{
alert("Try again!");
location.reload();
}
}
</script>
<body>
<input type='text' id='inputAnswer'/>
<input type='button' onClick='Submit()' value='Submit'/>
</body>
它没有真正起作用,如果我只放一个&#34; =&#34;只要文本框中有值,它就会提醒您为真。我计划为文本框值和公式的变量创建一个变量,然后将If(var1 = var2)......等等,但它不起作用。我想知道它是否可能,以及它是如何实现的?
如果不可能,我可以尝试放置var1 = formula = textbox id。我试图让它变成一个变量包含需要相等的值,所以当我在if语句中声明它时,我只是测试它是真还是假。
感谢所有帮助!
答案 0 :(得分:0)
您应该将计算出的距离与给定答案进行比较。现在你将距离与true
进行比较,这是没有意义的。
将其更改为
if(distance == parseFloat(answer.value)){
您需要.value
,因为answer
指向该元素。您不希望将distance
与元素进行比较,而是将其与元素值的数字表示进行比较。
另请注意,您的ID错误。在html中,它是inputanswer
,而在您的脚本中,您将其称为answer
。
具有单个=
的版本有效,因为您为距离指定了值。赋值也可以用作exssion,它返回已分配的值。因此,如果您编写if (distance = true)
,则将true
分配给变量distance
,并从表达式返回true
,从而导致if中的代码始终被执行。< / p>
我已经在下面的代码中做了必要的修复,你可以从这里运行。如你所见,你几乎就在那里。我只需要进行这两个小修复。 :)
var randomNumberA = Math.round((Math.random() * 50) +1)
var randomNumberB = Math.round((Math.random() * 50) +1)
document.write('He runs at ' + randomNumberA + 'm/s which took him ' + randomNumberB + 's. How far did he run?');
var distance = randomNumberA * randomNumberB
function Submit()
{
var answer = document.getElementById('inputAnswer')
if(distance == parseFloat(answer.value)){
alert("Congrats! You got it right!");
} else{
alert("Try again!");
location.reload();
}
}
<body>
<input type='text' id='inputAnswer'/>
<input type='button' onClick='Submit()' value='Submit'/>
</body>
答案 1 :(得分:0)
不完全确定我理解你的问题。但是,这里有一些信息可能会有所帮助:
if(distance == true){
除非值设置为false,否则如果有值,则呈现true。这就像说:
if (distance)
如果您想测试该值是否与公式匹配,您可以执行以下操作:
function Submit()
{
var answer = document.getElementById('inputAnswer').value // not 'answer'
if(distance === answer){
alert("Congrats! You got it right!");
} else{
alert("Try again!");
location.reload();
}
}
希望有所帮助
如果你使用它,你也可以通过JQuery获得价值。它将是以下内容:
var answer = $('#inputAnswer').val();
干杯!