我正在创建一个在线测试页面,想要捕获错误的答案并推入另一个阵列。我的代码如下。我究竟做错了什么?提前谢谢。
var ar, wqs, wqpos = 0;
var oneq = new Array(5);
function renderQuestion()
{
test = _("test");
if(pos >= ar.length)
{
_("test_status").innerHTML = "Test Completed";
pos = 0;
correct = 0;
wqpos = 0;
return false;
}
question = ar[pos][1];
..... rest of code
<input type='radio' name='choices' value='A'> "+chA+"<br>;
...... rest of code
<button onClick='checkAnswer()'>Submit Answer</button>;
}
function checkAnswer()
{
choices = document.getElementsByName("choices");
for(var i=0; i<choices.length; i++)
{
if(choices[i].checked)
{
choice = choices[i].value;
}
}
if(choice == ar[pos][5])
{
correct++;
}
else
{
oneq = [ar[pos][1], ar[pos][2], ar[pos][3], ar[pos][4], ar[pos][5]];
问题是接下来的两行:
wqs[wqpos] = [oneq[0], oneq[1], oneq[2], oneq[3], oneq[4]];
wqpos++;
}
pos++;
renderQuestion();
}
答案 0 :(得分:0)
锶。我不明白你的问题,我是否能解决它。 但是,我读了你的代码,我认为方法renderQuestion()有问题。这是因为:
var ar, wqs, wqpos = 0; // ar is undefined
所以,在方法renderQuestion()中检查:
if(pos >= ar.length) // ar.length is error: Uncaught TypeError, because ar is undefined
我认为你应该为变量设置默认值。
感谢。