Autor Zpráva
Lukyn2006
Profil
Díky za pomoc, budeto nějaká drobnost, snad postačí jen kod.

<input type="radio" id="puntik" value="0" ochange="swit(0)"> <br>
<input type="radio" id="puntik" value="1" ochange="swit(1)"> <br>
<input type="radio" id="puntik" value="2" ochange="swit(2)"> <br>
<input type="radio" id="puntik" value="3" ochange="swit(3)"> <br>

<p> 
<span id="slovo"></span>
</p>

<script> 
function swit(){
var hodnota = parseFloat(document.getElementById("puntik").value);
document.getElementById("puntik").value = hodnota;
var slovy;
switch (hodnota)
{
        case 0:
                slovy = "Nula, a to je málo ";
                break;
        case 1:
                slovy = "jedna ";
                break;
        case 2:
                slovy = "dva ";
                break;
        case 3:
                slovy = "tři ";
                break;
        default:
                slovy = "To už je zbytečně moc";
}
document.getElementById("slovo").innerHTML = slovy;
}
</script>
smitka
Profil
První problém je v tom, že máš použit vícekrát atribut ID, ten musí být unikátní a nesmí být použit vícekrát.

V tvém způsobu posíláš hodnotu i jako parametr funkce swit, ale v definici funkce tuto hodnotu nezpracováváš. Když si nadefinuješ:

function swit(hodnota){

tak už ji nebudeš muset načítat odjinud - musíš si ale opravit překlep, když ti chybí N v onchange.

Pokud nechceš přepisovat hodnoty do parametru funkce ručně, můžeš zavolat

onchange="swit(this)"

a pak si vyčíst konkrétní hodnotu

hodnota = hodnota.value;

Pokud bys to chtěl řešit následným zpracováním, tak musíš nejprve změnit atribut id na name. A pak následně:

var hodnota;
var hodnoty = document.getElementByName("puntik");
for(var i=0; i<hodnoty.length; i++) {
  if(hodnoty[i].checked) {
    hodnota = hodnoty[i].value;
  }
}


Pro novější prohlížeče (caniuse.com/#feat=queryselector) můžeš také místo cyklu použít querySelector:

hodnota = document.querySelector('input[name="puntik"]:checked').value;

Případně při použití jQuery:

hodnota = $('input[name="puntik"]:checked').val();


Když si inputy obalíš do formuláře (což by mělo být):

<form name="formular"">
  <input type="radio" name="puntik" value="0"> <br>
  <input type="radio" name="puntik" value="1"> <br>
  <input type="radio" name="puntik" value="2"> <br>
  <input type="radio" name="puntik" value="3"> <br>
</form>

tak se k vybrané hodnotě dostaneš:

hodnota = document.forms.formular.puntik.value;

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0