Autor Zpráva
Chuchycek
Profil
Ahoj,
chtěl bych se zeptat jakým způsobem lze dostat hodnoty z pole v inputu? Když nevím jaký bude index v poli (pole[1], pole['a']) a neznám ani jeho délku.
            <input type="radio" name="pole[0]" value="1" checked="checked"><br>
            <input type="radio" name="pole[0]" value="2"><br>
            <input type="radio" name="pole[0]" value="3"><br>
            <input type="radio" name="pole[0]" value="4"><br>
            <input type="radio" name="pole[0]" value="5"><br>
            
            <input type="radio" name="pole[1]" value="1" checked="checked"><br>
            <input type="radio" name="pole[1]" value="2"><br>
            <input type="radio" name="pole[1]" value="3"><br>
            <input type="radio" name="pole[1]" value="4"><br>
            <input type="radio" name="pole[1]" value="5"><br>
V js mám
            var ele = document.getElementsByName("pole[]");
            alert(ele.length);
Díky
Chuchycek
Profil
Tak jsem to vyřešil nakonec sám, nevím jestli je to nejlepší řešení, ale v mém skriptu to vypadá takhle:
function suma(id, cena, div){
    var celkovaCena = 0;
    var elements = document.getElementsByTagName("input");
    for(var i = 0; i < elements.length; i++){
        element = elements[i];
        if(element.type == "radio"){
            if(element.checked){
                if(element.id == id){
                    if(element.value > 0){
                        celkovaCena = celkovaCena + cena;
                    }
                }
            }
        }
    }
    document.getElementById(div).innerHTML = celkovaCena;
}
Joker
Profil
Chuchycek:
Ta funkce má jako vstup id elementu. Sice nevím kde se vezme, protože v tom HTML v [#1] není, ale předpokládám, že v současné verzi je.
Takže pak můžete prostě a jednoduše použít document.getElementById.
function suma(id, cena, div) {
  var el = document.getElementById(id);
  document.getElementById(div).innerHTML = (el && el.checked && (el.value > 0)) ? cena : "0";
}
Tohle by mělo být analogické ke skriptu výše (to sčítání do celkovaCena jsem taky vypustil, protože na začátku se to nastaví na 0 a pak se tam přičte jen za ten jeden element, takže by mělo platit buď celkovaCena == 0, nebo celkovaCena == cena)
Chuchycek
Profil
Ano, v současné verzi je, jelikož tam je víc typů radio, takže abych ji omezil pouze na dané elementy, tak jsem to musel upravit. Díky, to je pravda v js jsem začátečník, takže si ještě nejsem tolik jistý, co se může a co ne.

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: