Riportiamo alcuni esempi di form che fanno uso di radiobutton
o di checkbox. Ambedue gli esempi potrebbero essere la base per
costruire un questionario a risposta multipla.
In questo primo esempio sono consentite più risposte ad
uno stesso quesito utilizzando i checkbox.
<script language="JavaScript">
var esatte="0101";
function check() {
var punteggio = 0;
for (i = 0; i < 4; i++) {
;var x = eval('document.form1.checkbox'+i+'.checked');
if (x == (esatte.charAt(i) == '1'))
punteggio++;
}
alert("Risposte esatte: " + punteggio + "/4");
}
function check1() {
for (i = 0; i < 4; i++) {
var x = eval('document.form1.checkbox'+i);
x.checked = (esatte.charAt(i) == '1');
}
}
</script>
<form name="form1">
Quali di questi personaggi è italiano?<br>
<br>
<input type="checkbox" name="checkbox0" value="checkbox">
Renato Cartesio<br>
<input type="checkbox" name="checkbox1" value="checkbox">
Galileo Ferraris<br>
<input type="checkbox" name="checkbox2" value="checkbox">
Annibale Barca<br>
<input type="checkbox" name="checkbox3" value="checkbox">
Ettore Schmitz<br>
<br>
<input type="button" name="Controllo" value="Controlla" onClick="check()">
<input type="button" name="Risposte" value="Vedi le risposte
esatte" onClick="check1()">
</form>
In questo secondo esempio è consentita una sola risposta
per ogni domanda. Il punteggio è calcolato nella maniera
"classica" e cioè:
- -1 punti per una risposta sbagliata,
- 0 punti se non viene data alcuna risposta,
- n-1 (con n il numero delle risposte) se la risposta è
esatta.
Un esempio completo può essere trovato all'indirizzo:
http://www.itaer.it/lavori/schede/test.htm
<script language="JavaScript">
<!--
var ntests = 2;
var esatte="DB";
function test() {
var punteggio = 0;
var maxp = 0;
for (i = 0; i < ntests; i++) {
var elem = eval("document.form1.radio" + (i + 1));
var answer = eval("document.form1.answ" + (i + 1));
var n = esatte.charCodeAt(i) - 65;
for (j = 0; j < elem.length; j++) {
if (elem[j].checked)
break;
}
answer.checked = false;
maxp += elem.length - 1;
if (j < elem.length) {
if (n == j) {
punteggio += elem.length - 1;
answer.checked = true;
}
else
punteggio--;
}
}
alert("Il tuo punteggio è: "+ punteggio +"
/ " + maxp);
}
function testv() {
for (i = 0; i < ntests; i++) {
var elem = eval("document.form1.radio" + (i + 1));
var j = esatte.charCodeAt(i) - 65;
elem[j].checked = true;
}
}
// -->
</script>
<form name="form1">
<table width="100%" border="0" cellspacing="0" cellpadding="8"
align="center">
<tr>
<td bgcolor="#E8E8FF" nowrap valign="top">1</td>
<td bgcolor="#E8E8FF" valign="top">Se in uno
stesso mese tre
domeniche sono cadute in giorni pari, che giorno
della settimana è stato il 20 di quel mese?</td>
</tr>
<tr bgcolor="#FFFFFF">
<td valign="top">
<input type="checkbox" name="answ1">
</td>
<td>
<table align="center" width="90%" cellpadding="2">
<tr>
<td>
<input type="radio" name="radio1"
value="radiobutton">
lunedì</td>
<td>
<input type="radio" name="radio1"
value="radiobutton">
martedì</td>
<td>
<input type="radio" name="radio1"
value="radiobutton">
mercoledì</td>
<td>
<input type="radio" name="radio1"
value="radiobutton">
giovedì</td>
<td>
<input type="radio" name="radio1"
value="radiobutton">
altro giorno</td>
</tr>
</table>
<br>
</td>
</tr>
<tr>
<td valign="top" nowrap bgcolor="#E8E8FF">2</td>
<td bgcolor="#E8E8FF" valign="top">La somma
di tre numeri interi
positivi dispari è:</td>
</tr>
<tr bgcolor="#FFFFFF">
<td valign="top">
<input type="checkbox" name="answ2">
</td>
<td>
<table width="90%" align="center">
<tr valign="top">
<td>
<input type="radio" name="radio2"
value="radiobutton">
</td>
<td>un numero primo</td>
<td>
<input type="radio" name="radio2"
value="radiobutton">
</td>
<td>un numero dispari</td>
<td>
<input type="radio" name="radio2"
value="radiobutton">
</td>
<td>un multiplo di tre</td>
<td>
<input type="radio" name="radio2"
value="radiobutton">
</td>
<td>divisibile almeno per
uno dei tre addendi </td>
<td>
<input type="radio" name="radio2"
value="radiobutton">
</td>
<td>uguale ad una potenza
di base dispari</td>
</tr>
</table>
<br>
</td>
</tr>
</table>
<br>
<br>
<center>
<input type="button" name="Submit" value="Controlla
le tue risposte" onClick="test()">
<input type="button" name="Verifica" value="Le
risposte esatte" onClick="testv()">
</center>
</form>
Per scaricare questa pagina in formato Word (zip 22 kb) clicca
qui.