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

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;
}

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny