Autor Zpráva
normalniclovek
Profil
Dobrý den,
Chci secist hodnotu dvou inputů:
<input name="prvni"><input type="button" value="+" disabled><input name="druhy"> <input type="button" value="=" onclick="document.write(document.all.prvni.value + document.all.druha.value)">
Ale problem je takový, že když např. Bude hodnota inputu 5 a u druhého 100 tak se nevypíše 105 ale 5100.
Děkuji předem za odpovědi.
Taps
Profil
normalniclovek:
Časté potíže, zajímavosti a poučné debaty » Součet čísel versus součet řetězců
normalniclovek
Profil
díky,


čím je tam myšlena proměná?
Mám tam zadat - var nebo co?
Díky za odpověď
Radek9
Profil
normalniclovek:
Z vlastnosti value u formulářových prvků dostaneš vždy string. Při sčítání stringů dostaneš vždy nový string. Potřebuješ ty stringy převést na číslo a až potom je sečíst.
quatzael
Profil
normalniclovek:

Můžeš použít například funkci parseFloat()..

stringnum = parseFloat(stringnum);
normalniclovek
Profil
díky já jsem myslel ale:
Součet čísel versus součet řetězců Vezmete-li např. hodnotu z textového < i n p u t >u, skript s ní pracuje jako s řetězcem, i když je v ní vepsané číslo. Pokud k ní něco přičtete,
výsledkem bude pořád řetězec, z " 1 " + 5 vyjde " 1 5 " , nikoliv 6. Dosáhnout číselného součtu jde několika způsoby: • Vynásobit řetězec jedničkou: p r omě n n á * 1 + 5. • Místo přičtení odečíst zápornou hodnotu: - ( - p r omě n n á ) + 5. • Přičíst kladnou hodnotu: + p r omě n n á + 5. • Použít funkci N umb e r : N umb e r ( p r omě n n á ) + 5. • Použít funkci p a r s e F l o a t či p a r s e I n t : p a r s e F l o a t ( p r omě n n á ) + 5
_____________________________________________________________________
Co je ta proměná? Co tam mám místo toho zadat?
Asi by to bylo lehčí přes tu proměnou.
Díky
quatzael
Profil
normalniclovek:
Co je ta proměná? Co tam mám místo toho zadat?
tam máš právě zadat tu proměnnou. Do tý proměnný si nejprve vložíš hodnotu z toho inputu pomocí .value() a pak to projedeš přes ten parse..
Radek9
Profil
normalniclovek:
Prostě value toho inputu. Nemusí to být přímo v proměnné, stačí vlastnost.
normalniclovek
Profil
pořád mi to nefunguje :(
Dáte sem někdo prosím živou ukázku jako já nahoře.
Díky
Radek9
Profil
normalniclovek:
var result = parseFloat(document.názevFormuláře.prvni.value) + parseFloat(document.názevFormuláře.druhy.value);

alert(result);

Edit: Vida, na value jsem z toho zmatku zapomněl. :-)
peta
Profil
Radek9:
<form>
<input name="prvni" value=5>
<input name="druhy" value=6>
</form>
<script>
var form = document.forms[0];
var result = parseFloat(form.prvni.value) + parseFloat(form.druhy.value);
alert(result);
</script>
preca1
Profil
quatzael:
Do tý proměnný si nejprve vložíš hodnotu z toho inputu pomocí .value()

Neni to metoda, ale atribut, takže tam nemaj bejt ty závorky.
normalniclovek
Profil
díky

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: