Autor Zpráva
jirka3
Profil *
Ahoj, mám takový primitivní problém. Začínám s JavaScriptem a potřebuju místo "052415" do scriptu dostat číslo zadané do input. Jak? Díky...

<script>
function funkce() {
    y2 = "052415"/1000000*60;
    y3 = y2.toFixed(3);
    alert(y3);
}
</script>
            <form>
            <input name="nsourad" type="text" size="50">
            <input type="submit" size="10" value="Odeslat" onClick="funkce()">
            </form>
Chamurappi
Profil
Reaguji na jirku3:
Zavoláš funkce(this.form.nsourad.value) a hodnota ti do funkce přijde jako první vstupní argument.

y2.toFixed(3);
Dovolím si upozornit, že zaokrouhlování metodou toFixed nemusí fungovat vždy a všude správně.
jirka3
Profil *
Chamurappi:
Ehh, asi jsem teď natvrdlý, ale nechápu to. Můžeš mi to prosím vepsat přímo do kódu? Díky
Chamurappi
Profil
Reaguji na jirku3:
Nyní používáš onClick="funkce()", což změníš na onclick="funkce(this.form.nsourad.value)".
Místo function funkce() napíšeš třeba function funkce(x).
Pak místo řetězce "052415" použiješ x.
jirka3
Profil *
Chamurappi:
Funguje, díky! Jenom nějak nechápu to this.form.nsourad.value... Co kdybych tam měl více vstupních polí? Jak to zapíšu?

toFixed: a dá se to zapsat jinak?
Trejpa
Profil
jirka3:
<script>
function funkce(x) { /* první (jediný) vstupní argument */
    x = parseInt(x); /* nějaké využití proměnné z políčka formuláře */
    y2 = x/1000000*60;
        /* zaokrouhlení na tři desetinná místa */
    y3 = y2 * 1000; y3 = Math.round(y3) / 1000;
    alert(y3);
}
</script>
            <form action="#" onsubmit="funkce(this.nsourad.value); return false; /* zavoláš funkci */ ">
            <input name="nsourad" type="text" size="50">
            <input type="submit" size="10" value="Odeslat">
            </form>

Opraveno this.form na this dle [#10].
lionel messi
Profil
jirka3:
Co kdybych tam měl více vstupních polí?
Vždy this.form.neco.value, kde neco je hodnota atribútu name prislúchajúceho danému formulárovému prvku. Čo sa týka zaokrúhľovania ti odpovedal Trejpa.
jirka3
Profil *
Díky všem. Ještě jednu věc: Po zobrazení alertu a následném rozkliknutí OK se celá stránka znovu načte, a tím se vymažou i hodnoty v polích. Jde nějak nastavit, aby se to nenačítalo znovu?
Trejpa
Profil
jirka3:
aby se to nenačítalo znovu?
Zrušit odeslání formuláře:
<form action="#" onsubmit="funkce(this.nsourad.value); return false; /* zavoláš funkci */ ">

Opraveno this.form na this dle [#10].
Chamurappi
Profil
Reaguji na Trejpu:
Pokud se chytá událost na formuláři, tak místo this.form jen this.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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