带有单选按钮的JavaScript表单
我试图用javascript做一个小测验,用单选按钮检查提供给用户的答案。它检查第一个条目是否正确,但当转到第二个问题时,它会抛出一个未定义类型错误带有单选按钮的JavaScript表单,javascript,html,forms,radio-button,Javascript,Html,Forms,Radio Button,我试图用javascript做一个小测验,用单选按钮检查提供给用户的答案。它检查第一个条目是否正确,但当转到第二个问题时,它会抛出一个未定义类型错误无法读取未定义的属性。在这一行中,我尝试过使用getElementById和document.form,但无法找出错误的原因。代码是第一个问题所用内容的复制和粘贴,效果很好!请帮忙 var questionsChosen = new Array(); for (var i = 1;i<16 ;i++ ) { questionsChose
无法读取未定义的属性。在这一行中,我尝试过使用getElementById
和document.form,但无法找出错误的原因。代码是第一个问题所用内容的复制和粘贴,效果很好!请帮忙
var questionsChosen = new Array();
for (var i = 1;i<16 ;i++ )
{
questionsChosen[i]= false;
}
function randomQuestion()
{
var myQuestions = new Array();
myQuestions[1] = "<tr><td><h4>Which one of these authors wrote and illustrated 'Calvin and Hobbes'?</h4></td></tr><tr><td><input type='radio' name='question1' value='Charles Schultz'>Charles Schultz<br><input type='radio' name='question1' id='correct' value='Bill Watterson'>Bill Watterson<br><input type='radio' name='question1' value='Jim Davis'>Jim Davis<br><input type='radio' name='question1' value='Tommy Peters'>Tommy Peters<br><hr/></td></tr>";
myQuestions[2] = "<tr><td><h4>In the Calvin and Hobbes Comic, Who was Calvin's annoying neighbour?</h4></td></tr><tr><td><input type='radio' name='question2' id='correct' value='Susie Derkins'/>Susie Derkins<br><input type='radio' name='question2' value='Samantha Jones'/>Samantha Jones<br><input type='radio' name='question2' value='Sally Parker'/>Sally Parker<br><input type='radio' name='question2' value='Sarah Marsh'/>Sarah Marsh<br><hr/></td></tr>";
for (var k = 1;k<myQuestions.length ;k++ )
{
document.write(myQuestions[k]);
questionsChosen[i]= true;
}
}
function checkAnswers()
{
// use boolean to set whether a question has been asked or not. if it has then check here
// maybe something like if question1==true
if (questionsChosen[1]= true)
{
var correctAnswer = document.myQuiz.question1[1].value;
var userAnswer;
for (i=0; i<document.myQuiz.question1.length; i++)
{
if (document.myQuiz.question1[i].checked==true)
{
userAnswer =document.myQuiz.question1[i].value
}
}
document.write("<br><br>Which one of these authors wrote and illustrated 'Calvin and Hobbes'?");
document.write("<br>Your chosen answer is: "+userAnswer);
if (correctAnswer == userAnswer)
{
document.write("<br>Correct!");
}
else document.write("<br>Incorrect... The answer was "+ correctAnswer);
}
if (questionsChosen[2]= true)
{
var correctAnswer = document.myQuiz.question2.value;
var userAnswer;
for (i=0; i<document.myQuiz.question2.length; i++)
{
if (document.myQuiz.question2[i].checked==true)
{
userAnswer =document.myQuiz.question2[i].value
}
}
document.write("<br><br>In the Calvin and Hobbes Comic, Who was Calvin's annoying neighbour?");
document.write("<br>Your chosen answer is: "+userAnswer);
if (correctAnswer == userAnswer)
{
document.write("<br>Correct!");
}
else document.write("<br>Incorrect... The answer was "+ correctAnswer);
}
}
var questionsChosen=new Array();
对于(var i=1;i如果question2也是类似question1的数组,则必须说明要检索其值并设置为正确答案的数组的索引。question2是数组本身。数组不能有值,但其元素有值。因此它必须读取question2[1].value,或类似的内容。请将行var correctAnswer=document.myquick.question2.value;
更改为
var correctAnswer = document.myQuiz.question2[1].value;
请输入1,2,3,4 water,答案是否正确我已经尝试了以下代码,它工作得非常好
<html><head></head><body>
<script>
var questionsChosen = new Array();
for (var i = 1;i<16 ;i++ )
{
questionsChosen[i]= false;
}
function randomQuestion()
{
var myQuestions = new Array();
myQuestions[1] = "<tr><td><h4>Which one of these authors wrote and illustrated 'Calvin and Hobbes'?</h4></td></tr><tr><td><input type='radio' name='question1' value='Charles Schultz'>Charles Schultz<br><input type='radio' name='question1' id='correct' value='Bill Watterson'>Bill Watterson<br><input type='radio' name='question1' value='Jim Davis'>Jim Davis<br><input type='radio' name='question1' value='Tommy Peters'>Tommy Peters<br><hr/></td></tr>";
myQuestions[2] = "<tr><td><h4>In the Calvin and Hobbes Comic, Who was Calvin's annoying neighbour?</h4></td></tr><tr><td><input type='radio' name='question2' id='correct' value='Susie Derkins'/>Susie Derkins<br><input type='radio' name='question2' value='Samantha Jones'/>Samantha Jones<br><input type='radio' name='question2' value='Sally Parker'/>Sally Parker<br><input type='radio' name='question2' value='Sarah Marsh'/>Sarah Marsh<br><hr/></td></tr>";
for (var k = 1;k<myQuestions.length ;k++ )
{
document.write(myQuestions[k]);
questionsChosen[i]= true;
}
document.write("<a href='Javascript:void(0)' onclick='checkAnswers();'>Check Answers</a>");
}
function checkAnswers()
{
// use boolean to set whether a question has been asked or not. if it has then check here
// maybe something like if question1==true
if (questionsChosen[1]= true)
{
var correctAnswer = document.myQuiz.question1[1].value;
var userAnswer;
for (i=0; i<document.myQuiz.question1.length; i++)
{
if (document.myQuiz.question1[i].checked==true)
{
userAnswer =document.myQuiz.question1[i].value
}
}
document.write("<br><br>Which one of these authors wrote and illustrated 'Calvin and Hobbes'?");
document.write("<br>Your chosen answer is: "+userAnswer);
if (correctAnswer == userAnswer)
{
document.write("<br>Correct!");
}
else document.write("<br>Incorrect... The answer was "+ correctAnswer);
}
if (questionsChosen[2]= true)
{
var correctAnswer = document.myQuiz.question2[1].value;
var userAnswer;
for (i=0; i<document.myQuiz.question2.length; i++)
{
if (document.myQuiz.question2[i].checked==true)
{
userAnswer =document.myQuiz.question2[i].value
}
}
document.write("<br><br>In the Calvin and Hobbes Comic, Who was Calvin's annoying neighbour?");
document.write("<br>Your chosen answer is: "+userAnswer);
if (correctAnswer == userAnswer)
{
document.write("<br>Correct!");
}
else document.write("<br>Incorrect... The answer was "+ correctAnswer);
}
}
</script>
<form name='myQuiz'>
<script>
randomQuestion();
</script>
</form>
</body></html>
var questionsChosen=新数组();
for(var i=1;这是在解析页面后调用document.write()
时发生的。它会自动调用`document.open()'这会抹掉所有以前的JS和HTML。那么我有办法解决这个问题吗?我是否只需按住write stmnts直到生成所有答案?只需再次检查并更改文档。write()stmnts将其全部写入一个更大的字符串。然后它在最后一次打印出来!感谢帮助!是的,我有这个,但实际上复制到了错误的txt中。我正在尽一切努力让它工作。当我放回数组位置时,它仍然会给出错误!