Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Zdrojový kod - klasický formulář na vyplňování i/y

Zdravim :),
potřeboval bych poradit ohledně zdrojových kodů.
Chtěl bych udělat klasický formulář na vyplňování i/y. Za každou správnou odpověď by se mělo přičíst do celkového hodnocení 10 %.
Každá správná odpověď má VALUE=1.
Zadaj jsem podmínku, že pokuď se cetina.value=="1", přičte se 10 %, ale ta funkce mi celkově nefunguje.
Dokázal by mi to někdo napsat, tak jak to ma být....?
Děkuji

<head>
<script>
body=0;
function akce (){
if (cestina.value=="1"; body++;)
else {cestina.value== "";body+0}
window.alert ("Vaše celková úspěšnost je "+body+" /100")
}</script></head><body>

Souhrné cvičení na vyjmenovaná slova.
<br/>
Doplňte správné i,í/y,ý!<br/>
<form name="cestina" method="get"><br/>
Potoky v létě v_s_chaly.<br/>
<input type="checkbox" value="1" /> y, y <br/> 
<input type="checkbox" value="2" /><br/>
<input type="checkbox" value="2" /><br/>
Všechno jsem jim v_l_čil.<br/>
<input type="checkbox" value="2" /><br/>
<input type="checkbox" value="2" /><br/>
<input type="checkbox" value="1" /> y, í <br/> 
L_žování patří mez_ nejobl_benější z_mní sporty.<br/>
<input type="checkbox" value="2" /><br/>
<input type="checkbox" value="1" /> y, i, í, i <br/>
<input type="checkbox" value="2" /><br/>
Starou chalupu v_hřívala malá p_cka.<br/>
<input type="checkbox" value="2" /><br/>
<input type="checkbox" value="1" /> y, í <br/>
<input type="checkbox" value="2 "/><br/>
Mistr Jan Hus b_l nespravedl_vě odsouzen a upálen v Kostnici.<br/>
<input type="checkbox" value="2" /><br/>
<input type="checkbox" value="1" /> y, i <br/>
<input type="checkbox" value="2" /><br/>
Ub_tovali se v jedné v_sce.<br/>
<input type="checkbox" value="2" /><br/>
<input type="checkbox" value="2" /><br/>
<input type="checkbox" value="1" /> y, í <br/>
Příběh se m_ příl_š nel_b_l.<br/>
<input type="checkbox" value="2" /><br/>
<input type="checkbox" value="2" /><br/>
<input type="checkbox" value="1" /> i, i, í, i <br/>

Vět je celkem 10, procenta vycházejí, ale už se mi to sem nevešlo.
Zmena predmetu, pôvodne: Zdrojový kod (los)

Předmět Autor Datum
V kóde nie je vidieť, že kedy sa volá funkcia akce. Správne by to malo byť tak, že použiješ prvky i… poslední
los 16.05.2011 21:17
los

V kóde nie je vidieť, že kedy sa volá funkcia akce.

Správne by to malo byť tak, že použiješ prvky input type=radio s nastaveným rovnakým name pre každú skupinu odpovedí (čiže prvá skupina bude napr. input type=radio name=q0, ďalšia bude input type=radio name=q1, atď.). Teraz, keď používaš checkboxy, tak keď niekto zaškrtne úplne všetky, tak bude 100-percentne úspešný, pretože nesprávne odpovede ignoruješ a za správne pripočítaš body. Teda vlastne nerobíš ani to, keďže tam máš nesprávnu syntax a kontroluješ nesprávnu premennú.

Funkciu pre kontrolu zavoláš vo form.onsubmit a vrátiš false, aby sa formulár neodoslal na server. Bude pozostávať z kontroly všetkých prvkov formulára s názvami q0 až qN. Bude to vyzerať cca nasledovne (netestoval som to, takže tam môžu byť chyby, ale princíp je zrejmý):

document.forms['cestina'].onsubmit = function() {
  var score = 0, radios, radio;
  for (var q = 0; radios = this.elements['q' + q]; ++q) {
    for (var r = 0; radio = radios[r]; ++r) {
      if (radio.checked) {
        score += radio.value == 1;
        break;
      }
    }
  }
  alert('Vaše celková úspěšnost je ' + (100 * score / q) + ' %.');
  return false;
}

Zpět do poradny Odpovědět na původní otázku Nahoru