js数学答案验证
js math answer validation
我正在尝试生成一个用户要回答的随机加法问题。我已经生成了随机数,但很难接受用户的答案并验证它。请帮助!我的代码如下:
js:函数randomNum(){var num1=document.getElementById("num1");var num2=document.getElementById("num2");num1.innerHTML=Math.floor((Math.random()*50)+1);num2.innerHTML=Math.floor((Math.random()*50)+1);
function checkMath() {
var num1 = parseInt((document.getElementById("num1")), 10);
var num2 = parseInt((document.getElementById("num2")), 10);
ans = document.forms.problem.answer;
ans.value = num1 + num2;
if (ans == correct) {
alert("woot");
} else {
alert("nope");
}
}
}
html:
<body onLoad="randomNum();">
<table>
<tr>
<td>
<div id="problem">
<div>
<p id="num1">00</p>
<div class="plus">+</div>
<p id="num2">00</p>
<hr>
<form id="problem"><p><input id="answerswer" value=""></p>
<input type="button" onclick="checkMath();" value="Check Answer"></form>
</div>
</div>
</td>
您的代码有几个问题。
首先,你实际上并不是在检查答案的值,而是在替换它
其次,您使用DOM元素作为参数来解析Int,而不是字符串(缺少innerHTML)。
正确的javascript应该是:
function randomNum() {
var num1 = document.getElementById("num1");
var num2 = document.getElementById("num2");
num1.innerHTML = Math.floor(Math.random()*50+1);
num2.innerHTML = Math.floor(Math.random()*50+1);
}
function checkMath() {
var num1 = parseInt(document.getElementById("num1").innerHTML, 10);
var num2 = parseInt(document.getElementById("num2").innerHTML, 10);
var answer = parseInt(document.getElementById("answerswer").value, 10);
if (answer === num1 + num2) {
alert("woot");
} else {
alert(answer + " is incorrect, correct answer is " + (num1+ num2));
}
document.getElementById("answerswer").value="";
randomNum();
}
我为您创建了一个jsfiddle,请查看此处:http://jsfiddle.net/883fF/
您的HTML有点二合一,例如,您打开了表标记,但从未关闭它,等等。我希望这会有所帮助。
代码看起来不错,但您忘记关闭JS函数了。
function randomNum() {
var num1=document.getElementById("num1");
var num2=document.getElementById("num2");
num1.innerHTML=Math.floor((Math.random()*50)+1);
num2.innerHTML=Math.floor((Math.random()*50)+1);
}
function checkMath() {
var num1=new Number(document.getElementById("num1").innerHTML);
var num2=new Number(document.getElementById("num2").innerHTML);
ans=document.getElementById("answerswer").value;
if (ans==(num1+num2))
{
alert('Woot!');
}
else
{
alert('Nope');
}
}
相关文章:
- 正在验证8个真/假复选框或复选框中的2个
- 借助asp.net验证或java脚本对多个文本进行验证
- jQuery自定义验证比较多个输入的序列
- 使用html中的外部javascript进行数据验证
- 如何使用jquery Validation验证Formspread
- jquery中的文本框验证
- 在验证和发送邮件后更改联系人表单的 html
- 代码不会验证
- JS验证ajax返回的html中的表单数据
- 同步调用,直到用户通过angular验证为访问者
- 带有加号的电话号码验证(可选)
- 解析javascript表单验证器
- 两位数的月份日期验证
- 使用angularjs验证文本框中的电子邮件
- js数学答案验证
- 验证提交到数据库的答案
- 使用change验证答案时出现问题
- 我如何检查是否有一定数量的字符与JavaScript表单验证的答案
- 超级简单的测验程序.我的答案是不验证和得分是n' t++
- 在提交之前验证所需的答案是否有响应