| Autor | Zpráva | ||
|---|---|---|---|
| Lukyn2006 Profil |
#1 · Zasláno: 21. 5. 2017, 14:10:30
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 |
#2 · Zasláno: 21. 5. 2017, 16:16:41
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; |
||
|
Časová prodleva: 9 let
|
|||
0