/    Sign up×
Community /Pin to ProfileBookmark

i have a quiz page runnning.
i want to capture the values of radio buttons checked and give the result using javascript
as long as i have 2 radio buttons for each question, the quiz works perfectly.it works for even 4 button.but if i have a mixture of questions some having 2 radio buttons and some having 4 buttons, it doesnt work.
how to rectify this problem
iam posting my code.
pls help me in rectifying it.
thanks

<html>
<body onload=load()>
<FORM NAME=”quizForm”>
<TABLE>
<TR><TD>Black = White</TD>
<TD>True <INPUT TYPE=”RADIO” NAME=”q0″ VALUE=”false” onClick=check4()>
or False <INPUT TYPE=”RADIO” NAME=”q0″ VALUE=”false” onClick=check4()>
or no<INPUT TYPE=”RADIO” NAME=”q0″ VALUE=”false” onClick=check4()>
or yes<INPUT TYPE=”RADIO” NAME=”q0″ VALUE=”true” onClick=check4()> ?</TD></TR>
<TR><TD>2 + 2 = 4</TD>
<TD>True <INPUT TYPE=”RADIO” NAME=”q1″ VALUE=”true” onClick=check2()>
or False <INPUT TYPE=”RADIO” NAME=”q1″ VALUE=”false” onClick=check2()> ?</TD></TR>
<TR><TD>5 – 3 = 1</TD>
<TD>True <INPUT TYPE=”RADIO” NAME=”q2″ VALUE=”false” onClick=check2()>
or False <INPUT TYPE=”RADIO” NAME=”q2″ VALUE=”true” onClick=check2()> ?</TD></TR>
<TR><TD>7 * 7 = 49</TD>
<TD>True <INPUT TYPE=”RADIO” NAME=”q3″ VALUE=”true” onClick=check2()>
or False <INPUT TYPE=”RADIO” NAME=”q3″ VALUE=”false” onClick=check2()> ?</TD></TR>
<TR><TD>36 / 6 = 5</TD>
<TD>True <INPUT TYPE=”RADIO” NAME=”q4″ VALUE=”false” onClick=check2()>
or False <INPUT TYPE=”RADIO” NAME=”q4″ VALUE=”true” onClick=check2()> ?</TD></TR>
<TR><TD>99 – 33 = 66</TD>
<TD>True <INPUT TYPE=”RADIO” NAME=”q5″ VALUE=”true” onClick=check2()>
or False <INPUT TYPE=”RADIO” NAME=”q5″ VALUE=”false” onClick=check2()> ?</TD></TR>
<TR><TD>33 + 99 = 66</TD>
<TD>True <INPUT TYPE=”RADIO” NAME=”q6″ VALUE=”false” onClick=check2()>
or False <INPUT TYPE=”RADIO” NAME=”q6″ VALUE=”true” onClick=check2()> ?</TD></TR>
<TR><TD>5 + 4 + 3 = 12</TD>
<TD>True <INPUT TYPE=”RADIO” NAME=”q7″ VALUE=”true” onClick=check2()>
or False <INPUT TYPE=”RADIO” NAME=”q7″ VALUE=”false” onClick=check2()> ?</TD></TR>
<TR><TD>6 + 5 + 4 = 13</TD>
<TD>True <INPUT TYPE=”RADIO” NAME=”q8″ VALUE=”false” onClick=check2()>
or False <INPUT TYPE=”RADIO” NAME=”q8″ VALUE=”true” onClick=check2()> ?</TD></TR>
<TR><TD>81 / 9 = 9</TD>
<TD>True <INPUT TYPE=”RADIO” NAME=”q9″ VALUE=”true” onClick=check2()>
or False <INPUT TYPE=”RADIO” NAME=”q9″ VALUE=”false” onClick=check2()> ?</TD></TR>
</TABLE>
<INPUT TYPE=”text” NAME=”c1″ VALUE=”” SIZE=”3″>
<INPUT TYPE=”text” NAME=”w1″ VALUE=”” SIZE=”3″>
<INPUT TYPE=”text” NAME=”b1″ VALUE=”” SIZE=”3″>
<P>
<INPUT TYPE=”BUTTON” onClick=”count()” VALUE=”Check Answers”>
Correct: <INPUT TYPE=”TEXTBOX” NAME=”correct” VALUE=”” SIZE=”3″>
Wrong: <INPUT TYPE=”TEXTBOX” NAME=”wrong” VALUE=”” SIZE=”3″>
Blank: <INPUT TYPE=”TEXTBOX” NAME=”blank” VALUE=”” SIZE=”3″>
</FORM>
</body>
</html>

<SCRIPT LANGUAGE=”JavaScript”><!–

function load()
{
alert(“hi”);
document.quizForm.c1.value=0;
document.quizForm.w1.value=0;
document.quizForm.b1.value=0;

}

function check2() {
var correct = 0;
var wrong = 0;
var blank = 0;
for (var i=0;i<10;i++) {
var yesChoice = eval(“document.quizForm.q” + i + “[0].checked”);
var noChoice = eval(“document.quizForm.q” + i + “[1].checked”);
var yesAnswer = eval(“document.quizForm.q” + i + “[0].value”);
var noAnswer = eval(“document.quizForm.q” + i + “[1].value”);

if (yesChoice == noChoice)
{
blank++;
break; // can’t both be checked, thus must be both unchecked
}
else {
if ((yesChoice.toString() == yesAnswer) &&
(noChoice.toString() == noAnswer))
{
correct++;
break;
}
else
{
wrong++;
break;
}
}
}

document.quizForm.c1.value = eval(“document.quizForm.c1.value” + correct);
document.quizForm.w1.value = eval(“document.quizForm.w1.value” + wrong);
document.quizForm.b1.value = eval(“document.quizForm.b1.value” + blank);

}

function check4() {
var correct = 0;
var wrong = 0;
var blank = 0;
for (var i=0;i<10;i++) {
var choice1 = eval(“document.quizForm.q” + i + “[0].checked”);
var choice2 = eval(“document.quizForm.q” + i + “[1].checked”);
var choice3 = eval(“document.quizForm.q” + i + “[2].checked”);
var choice4 = eval(“document.quizForm.q” + i + “[3].checked”);
var ans1 = eval(“document.quizForm.q” + i + “[0].value”);
var ans2 = eval(“document.quizForm.q” + i + “[1].value”);
var ans3 = eval(“document.quizForm.q” + i + “[2].value”);
var ans4 = eval(“document.quizForm.q” + i + “[3].value”);

if ((choice1 == choice2) && (choice2 == choice3) && (choice3 == choice4))
{
blank++; // can’t both be checked, thus must be both unchecked
break;
}
else {
if ((choice1.toString() == ans1) && (choice2.toString() == ans2) && (choice3.toString() == ans3) && (choice4.toString() == ans4))
{
correct++;
break;
}
else
{
wrong++;
break;
}
}
}
document.quizForm.c1.value = eval(“document.quizForm.c1.value” + correct);
document.quizForm.w1.value = eval(“document.quizForm.w1.value” + wrong);
document.quizForm.b1.value = eval(“document.quizForm.b1.value” + blank);

}

function count()
{
var c1= eval(“document.quizForm.c1.value”);
var w1= eval(“document.quizForm.w1.value”);
var b1= eval(“document.quizForm.b1.value”);

document.quizForm.correct.value=c1;
document.quizForm.wrong.value=w1;
document.quizForm.blank.value=b1;
}
//–></SCRIPT>


__________________

to post a comment
JavaScript

1 Comments(s)

Copy linkTweet thisAlerts:
@Dan_DrillichFeb 08.2003 — I just implemented Dave’s second method. Here it is -

<i>
</i>&lt;SCRIPT LANGUAGE="JavaScript"&gt;
var ans = new Array;
ans[0] = "b";
ans[1] = "a";
ans[2] = "b";
ans[3] = "a";
ans[4] = "b";
ans[5] = "a";
ans[6] = "b";
ans[7] = "a";
ans[8] = "b";
ans[9] = "a";
&lt;/SCRIPT&gt;



&lt;html&gt;
&lt;body onload=load()&gt;
&lt;FORM NAME="quizForm"&gt;
&lt;TABLE&gt;
&lt;TR&gt;&lt;TD&gt;Black = White&lt;/TD&gt;
&lt;TD&gt;True &lt;INPUT TYPE="RADIO" NAME="q0" VALUE="a"&gt;
or False &lt;INPUT TYPE="RADIO" NAME="q0" VALUE="b"&gt;
or no&lt;INPUT TYPE="RADIO" NAME="q0" VALUE="c" &gt;
or yes&lt;INPUT TYPE="RADIO" NAME="q0" VALUE="d"&gt; ?&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;&lt;TD&gt;2 + 2 = 4&lt;/TD&gt;
&lt;TD&gt;True &lt;INPUT TYPE="RADIO" NAME="q1" VALUE="a" &gt;
or False &lt;INPUT TYPE="RADIO" NAME="q1" VALUE="b"&gt; ?&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;&lt;TD&gt;5 - 3 = 1&lt;/TD&gt;
&lt;TD&gt;True &lt;INPUT TYPE="RADIO" NAME="q2" VALUE="a" &gt;
or False &lt;INPUT TYPE="RADIO" NAME="q2" VALUE="b" &gt; ?&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;&lt;TD&gt;7 * 7 = 49&lt;/TD&gt;
&lt;TD&gt;True &lt;INPUT TYPE="RADIO" NAME="q3" VALUE="a" &gt;
or False &lt;INPUT TYPE="RADIO" NAME="q3" VALUE="b" &gt; ?&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;&lt;TD&gt;36 / 6 = 5&lt;/TD&gt;
&lt;TD&gt;True &lt;INPUT TYPE="RADIO" NAME="q4" VALUE="a" &gt;
or False &lt;INPUT TYPE="RADIO" NAME="q4" VALUE="b" &gt; ?&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;&lt;TD&gt;99 - 33 = 66&lt;/TD&gt;
&lt;TD&gt;True &lt;INPUT TYPE="RADIO" NAME="q5" VALUE="a" &gt;
or False &lt;INPUT TYPE="RADIO" NAME="q5" VALUE="b" &gt; ?&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;&lt;TD&gt;33 + 99 = 66&lt;/TD&gt;
&lt;TD&gt;True &lt;INPUT TYPE="RADIO" NAME="q6" VALUE="a" &gt;
or False &lt;INPUT TYPE="RADIO" NAME="q6" VALUE="b" &gt; ?&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;&lt;TD&gt;5 + 4 + 3 = 12&lt;/TD&gt;
&lt;TD&gt;True &lt;INPUT TYPE="RADIO" NAME="q7" VALUE="a" &gt;
or False &lt;INPUT TYPE="RADIO" NAME="q7" VALUE="b" &gt; ?&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;&lt;TD&gt;6 + 5 + 4 = 13&lt;/TD&gt;
&lt;TD&gt;True &lt;INPUT TYPE="RADIO" NAME="q8" VALUE="a" &gt;
or False &lt;INPUT TYPE="RADIO" NAME="q8" VALUE="b" &gt; ?&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;&lt;TD&gt;81 / 9 = 9&lt;/TD&gt;
&lt;TD&gt;True &lt;INPUT TYPE="RADIO" NAME="q9" VALUE="a" &gt;
or False &lt;INPUT TYPE="RADIO" NAME="q9" VALUE="b" &gt; ?&lt;/TD&gt;&lt;/TR&gt;
&lt;/TABLE&gt;
&lt;INPUT TYPE="text" NAME="c1" VALUE="" SIZE="3"&gt;
&lt;INPUT TYPE="text" NAME="w1" VALUE="" SIZE="3"&gt;
&lt;INPUT TYPE="text" NAME="b1" VALUE="" SIZE="3"&gt;
&lt;P&gt;
&lt;INPUT TYPE="BUTTON" onClick="count()" VALUE="Check Answers"&gt;
Correct: &lt;INPUT TYPE="TEXTBOX" NAME="correct" VALUE="" SIZE="3"&gt;
Wrong: &lt;INPUT TYPE="TEXTBOX" NAME="wrong" VALUE="" SIZE="3"&gt;
Blank: &lt;INPUT TYPE="TEXTBOX" NAME="blank" VALUE="" SIZE="3"&gt;
&lt;/FORM&gt;
&lt;/body&gt;
&lt;/html&gt;

&lt;SCRIPT LANGUAGE="JavaScript"&gt;&lt;!--

function load()
{

document.quizForm.c1.value=0;
document.quizForm.w1.value=0;
document.quizForm.b1.value=0;

}

function count()
{
var rightA = 0;

for (var currentQ = 0; currentQ &lt;= 9; currentQ++) {

var currentRadioGroupName = "document.quizForm.q" + currentQ;
var currentRadioGroupset = eval(currentRadioGroupName);

var len = currentRadioGroupset.length;


for (var i=0; i &lt; len; i++ ) {
if (currentRadioGroupset[i].checked) {
if (currentRadioGroupset[i].value == ans[currentQ]) {
rightA++;
}
}
}


}

alert(rightA);
}
//--&gt;&lt;/SCRIPT&gt;



Cheers,

Dan
×

Success!

Help @srimca spread the word by sharing this article on Twitter...

Tweet This
Sign in
Forgot password?
Sign in with TwitchSign in with GithubCreate Account
about: ({
version: 0.1.9 BETA 4.30,
whats_new: community page,
up_next: more Davinci•003 tasks,
coming_soon: events calendar,
social: @webDeveloperHQ
});

legal: ({
terms: of use,
privacy: policy
});
changelog: (
version: 0.1.9,
notes: added community page

version: 0.1.8,
notes: added Davinci•003

version: 0.1.7,
notes: upvote answers to bounties

version: 0.1.6,
notes: article editor refresh
)...
recent_tips: (
tipper: @Yussuf4331,
tipped: article
amount: 1000 SATS,

tipper: @darkwebsites540,
tipped: article
amount: 10 SATS,

tipper: @Samric24,
tipped: article
amount: 1000 SATS,
)...