[英]JavaScript checking to see if a sum is correct
我想要javascript检查,看看用户是否给出了php生成的两个随机数的正确答案。 用户在提供的文本框中手动输入数字。
<input id="number1" name="number1" readonly="readonly" class="Add" value="<?php echo rand(1,4) ?>" /> +
<input id="number2" name="number2" readonly="readonly" class="Add" value="<?php echo rand(5,9) ?>" /> =
<input type="text" name="answer" id="number" class="number" maxlength="2" />
<span id="comment"><div class="Lable">Please give the correct answer to the sum</div></span>
JavaScript的
<script language="JavaScript">
function validate()
{
if (Contact.answer.value == Contact.number1.value + Contact.number2.value)
{
alert("Wrong answer number")
return false
}
return true;
}
</script>
我试一试,但我的JavaScript技能几乎不存在
我假设你在表单的submit
事件上调用validate()
(即onsubmit="validate()"
)。 如果没有,你需要以某种方式调用该函数。
其次,你的逻辑是错误的。 你正在检查答案是否正确(这是==
做了什么),然后在正确时告诉用户它是不正确的,并且当它没有时允许它。
改变你的逻辑如下:
function validate()
{
if((parseInt(Contact.number1.value) + parseInt(Contact.number2.value)) == Contact.answer.value)
{
return true;
}
alert("Wrong answer number")
return false
}
请注意,我们还使用parseInt()
来防止JavaScript将值视为字符串,然后将它们与+
literal连接起来。 如果我们不使用parseInt()
,JavaScript会将6
和4
解释为64
而不是10
。
<script language="JavaScript">
function validate()
{
var answer = parseInt(document.getElementById("number1").value, 10)+parseInt(document.getElementById("number2").value, 10);
var v = parseInt(document.getElementById("captcha").value, 10);
if (answer != v)
{
alert("Wrong answer number")
return false
}
return true;
}
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.