Autor Zpráva
zdenek
Profil
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
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
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
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
_es:

opravdu jsem nic nenašel. jestli jsi něco našel ty, budu rád, když mi tyto materiály poskytneš.
Joker
Profil
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
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
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
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
joe:

ten tvůj kód nefunguje. když zaškrtnu checkbox, tak mi pořád píše 0. jakto?
Joker
Profil
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
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
_es:

ale já jsem v javascriptu začátečník, a nevím jak to upravit.
_es
Profil
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
_es:

tady nejde o základy. to už je celkem pokročilý javascript.
_es
Profil
zdenek:
tady nejde o základy
Priradenie funkcie k udalosti sú naozaj základy.
joe
Profil
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
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 *
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>

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:

0