09-08-2010, 20:39
Prezentowany poniżej kod działał do input=text natomiast gdy zmieniłem na radio validator powiadamia mnie, że wartość no1 jest pusta, dlaczego?
Kod:
<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 = "";
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 name="form1" 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 id="jeden"></span><br/>
<p>Twój wynik:</p>
<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" />
</form>