JavaScript检查以查看总和是否正确

时间:2014-04-15 11:35:17

标签: javascript php html

我想要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技能几乎不存在

2 个答案:

答案 0 :(得分:3)

我假设您在表单的validate()事件(即submit)上致电onsubmit="validate()"。如果没有,你需要以某种方式调用该函数。

其次,你的逻辑是错误的。您是否正在检查答案是否正确(==的作用是什么),然后告诉用户当答案是正确的时候是否正确,并在用户正确时将其允许#39;不是。

按如下方式改变你的逻辑:

function validate()
{
    if((parseInt(Contact.number1.value) + parseInt(Contact.number2.value)) == Contact.answer.value)
    {
        return true;
    }   

    alert("Wrong answer number")
    return false
}

请注意,我们还使用parseInt()来阻止JavaScript将值视为字符串,然后将它们与+字面值连接起来。如果我们不使用parseInt(),JavaScript会将64解释为64,而不是10

答案 1 :(得分:0)

<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>