Autor | Zpráva | ||
---|---|---|---|
zdenek Profil |
#1 · Zasláno: 25. 8. 2011, 14:27:46
ahoj, chtěl bych se zeptat, jak by šlo udělat to, že když zaškrtnu checkbox s value = 13 a checkbox
s value = 15, tak se dole na stránce zobrazí součet. V tomto případdě by se objevilo 28. Potřeboval bych třeba jen odkazy na stránky, protože už půl dne "googluju" a stále nic. Předem díky za odpovědi. :-) |
||
Joker Profil |
#2 · Zasláno: 25. 8. 2011, 14:35:22
zdenek:
A v čem konkrétně je problém? Jestli v tom, že to v tom konkrétním příkladě místo 28 vrací "1315", šlo by použít parseInt. |
||
zdenek Profil |
#3 · Zasláno: 25. 8. 2011, 14:37:55
Joker:
né, to né. Já jen nevím, jak začít. nemám vůbec představu, protože v javascriptu moc nedělám. A díky za rychlou odpověď. |
||
_es Profil |
#4 · Zasláno: 25. 8. 2011, 14:45:31
zdenek:
„Já jen nevím, jak začít.“ Skôr to vyzerá, že chceš hotový skript aj s HTM kódom na počkanie než pomoc, neverím, že by si nenašiel na toto dosť ukážkových skriptov. |
||
zdenek Profil |
#5 · Zasláno: 25. 8. 2011, 14:46:51
_es:
opravdu jsem nic nenašel. jestli jsi něco našel ty, budu rád, když mi tyto materiály poskytneš. |
||
Joker Profil |
#6 · Zasláno: 25. 8. 2011, 14:50:42
zdenek:
No já jinak nevím, co v tom je za problém. V DOMu se zaměří ten checkbox (třeba přes document.getElementById, pokud má ID), ten má vlastnost value a v ní je jeho hodnota. |
||
joe Profil |
#7 · Zasláno: 25. 8. 2011, 14:53:18
Nějak takhle, není to celé, tak si sám vymysli, jak to dodělat :)
<div id="checkboxy"> <input type="checkbox" value="13" data-pricti="true"> <input type="checkbox" value="13" data-pricti="true"> </div> <div id="vysledek">0</div> <script> var soucet = 0; function zmen() { var inputy = document.getElementById('checkboxy').getElementsByTagName('input'); for(var i = 0; i < inputy.length; i++) { if(!inputy[i].getAttribute('data-pricti')) continue; soucet += parseInt(inputy[i].value); } document.getElementById('vysledek').innerHTML = soucet; } </script> |
||
zdenek Profil |
#8 · Zasláno: 25. 8. 2011, 14:55:39
Joker:
alw když těch checkboxů bude třeba 30? jak to bude vypadat? omlouvám se za to, že bych chtěl útržek kódu, ale s javascriptem nemám moc zkušeností. |
||
_es Profil |
#9 · Zasláno: 25. 8. 2011, 15:03:03 · Upravil/a: _es
zdenek:
„opravdu jsem nic nenašel“ Síce ti neverím, no všetko čo potrebuješ je nájsť si o: 1) udalosti onclick a iných vlastnostiach elementu input (value]). 2) metódach document.getElementById a innerHTML (alebo inú metódu na to „objavenie sa 28“). „ale s javascriptem nemám moc zkušeností.“ To sa rieši štúdiom odborných zdrojov a nie generovaním dotazu na hocijakú banalitu, čo ťa napadne. Ukáž, čo máš, možno ti niekto poradí, aké tam máš chyby. |
||
zdenek Profil |
#10 · Zasláno: 25. 8. 2011, 15:13:13
joe:
ten tvůj kód nefunguje. když zaškrtnu checkbox, tak mi pořád píše 0. jakto? |
||
Joker Profil |
#11 · Zasláno: 25. 8. 2011, 15:13:58
zdenek:
„když těch checkboxů bude třeba 30?“ Pak záleží, jakým způsobem chcete ty checkboxy zaměřit. Neboli podle jakého klíče se pozná co všechno se má sečíst. |
||
_es Profil |
#12 · Zasláno: 25. 8. 2011, 15:17:56
zdenek:
„ten tvůj kód nefunguje.“ Tak si napíš vlastný alebo doplň ten, čo ti dal joe, odkazov už máš na to dosť, viď prvá vec v [#9]. |
||
zdenek Profil |
#13 · Zasláno: 25. 8. 2011, 15:20:07
_es:
ale já jsem v javascriptu začátečník, a nevím jak to upravit. |
||
_es Profil |
#14 · Zasláno: 25. 8. 2011, 15:24:24
zdenek:
„ale já jsem v javascriptu začátečník, a nevím jak to upravit.“ Ak si lenivý si naštudovať základy a napísať čo len jeden riadok vlastného kódu, daj to do sekcie „Práce a zakázky“ s nejakou odmenou. |
||
zdenek Profil |
#15 · Zasláno: 25. 8. 2011, 15:28:16
_es:
tady nejde o základy. to už je celkem pokročilý javascript. |
||
_es Profil |
#16 · Zasláno: 25. 8. 2011, 15:30:55
zdenek:
„tady nejde o základy“ Priradenie funkcie k udalosti sú naozaj základy. |
||
joe Profil |
#17 · Zasláno: 25. 8. 2011, 15:35:41
zdenek:
„ten tvůj kód nefunguje. když zaškrtnu checkbox, tak mi pořád píše 0. jakto?“ Psal jsem „Nějak takhle, není to celé, tak si sám vymysli“. |
||
Joker Profil |
#18 · Zasláno: 25. 8. 2011, 15:37:37
zdenek:
Není na tom nic pokročilého, zaměření prvku v DOMu a sčítání jsou opravdu základní věci. Hlavně se ale předpokládá, že tazatel má alespoň základní znalosti a poté co mu nastíníme řešení si to bude schopný doladit sám. Jestli o tom nic nevíte a chcete hotové fungující řešení, můžete zadat poptávku v Práce a zakázky. |
||
Filip Kohl Profil * |
#19 · Zasláno: 27. 8. 2011, 06:02:05
Tady to máš celé funkční:
<html> <HEAD> <SCRIPT LANGUAGE="JavaScript"> <!-- function anyCheck(form) { var total = 0; var max = form.ckbox.length; for(var idx = 0; idx < max; idx++) { if(eval("document.playlist.ckbox[" + idx + "].checked") == true) { var cislo = eval("document.playlist.ckbox[" + idx + "].value")*1; total = total+cislo; } } alert("Součet je " + total); } --> </script> </HEAD> <BODY> <form method="post" name=playlist> <br>1<input type=checkbox name=ckbox value=1> <br>2<input type=checkbox name=ckbox value=2> <br>3<input type=checkbox name=ckbox value=3> <br>4<input type=checkbox name=ckbox value=4> <br>5<input type=checkbox name=ckbox value=5> <br>6<input type=checkbox name=ckbox value=6> <br>7<input type=checkbox name=ckbox value=7> <br>8<input type=checkbox name=ckbox value=8> <br>9<input type=checkbox name=ckbox value=9> <p><input type=button value="Count Checkboxes" onClick="anyCheck(this.form)"> </form> </body> </html> |
||
Časová prodleva: 13 let
|
0