Witam, napisałem sobie skrypt walidujący formularz, bez jego wysyłania. Dokładnie taki sam tyle, że dla input type="text" działał bez problemu, natomiast poniższy dla input type="radio" nie działa. Validator podpowiada mi, że zmienna pobierana z formularza - no1 nie posiada wartości, ale nie wiem dlaczego? Czy radio działa inaczej niż text
<script type="text/javascript">
function error(tekst1, tekst_punkty, tekst_procenty) {
if (errfound) return;
document.getElementById('jeden').innerHTML = tekst1;
document.getElementById('idpunkty').innerHTML = tekst_punkty;
document.getElementById('idprocenty').innerHTML = tekst_procenty;
errfound = true;
}
function validate() {
errfound = false;
var odp1 = "A";
var brak = "<img src=\"x.jpg\"> <span style=\"color:red\">Brak odpowiedzi,</span><span style=\"color:green\"> poprawnie:</span> ";
var lub = " lub ";
var br = "<br/>";
var bledy = "";
var poprawnie = "<img src=\"x.jpg\"><span style=\"color:red\">Źle,</span> <span style=\"color:green\">poprawnie:</span> ";
var blad1 = "";
var punkty = 0;
with (document.forms[0]) {
if (no1.value.toLowerCase() == odp1.toLowerCase() ) { blad1 += "<img src=\"tick.jpg\"> <br/>";punkty++;}
else if(no1.value == "") {blad1 += brak + odp1 + br;}
else {blad1 += poprawnie + odp1 + br; }
var procenty = punkty * 100 / 10
if (blad1 != "") error(blad1, punkty, procenty);
}
return !errfound;
}
function blokada(form)
{
var pola = form.getElementsByTagName('*');
for(i = 0; i < pola.length; ++i)
{
if(pola[i].tagName.toLowerCase() == 'input' || pola[i].tagName.toLowerCase() == 'textarea' || pola[i].tagName.toLowerCase() == 'select' || pola[i].tagName.toLowerCase() == 'button')
{
pola[i].disabled = true;
}
}
}
</script>
<form action="#" method="post" onsubmit="blokada(this); return validate();">
<p>1) Adrian ma na imię:
</p> <input type="radio" name="no1" value="A" />A) Adrian
<br/> <input type="radio" name="no1" value="B" />B) Adriano
<br/> <input type="radio" name="no1" value="C" />C) Eidrian
<br/> <input type="radio" name="no1" value="D" />D) Adruch
<br/>
<span style="color:green;" id="idpunkty">0
</span><span> / 10 -
</span><span style="color:green;" id="idprocenty">0
</span> %
<input type="submit" value="wyślij" />