我可以在if语句中放入一个变量=另一个变量。或者把var = value =另一个它应该等于的值?

时间:2014-11-15 15:59:39

标签: javascript

您好我正在努力解决我在学校需要的解决问题的网页,但到目前为止,我仍然坚持使用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语句中声明它时,我只是测试它是真还是假。

感谢所有帮助!

2 个答案:

答案 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();

干杯!

相关问题