Autor Zpráva
total
Profil *
Zdravím, dělám si malej kvíz. Vše maká krásně, ale nemůžu přijít na to jak udělat do funkce přičítání.
Mám ve funkcí h. Do háčka se posílá buď nula nebo jednička. Záleží na tom zda je odpověd správná (1).

Potřebuji aby mi přičítal h, ale nějak se mi to nedaří. Poradí někdo? Ď
Chamurappi
Profil
Reaguji na totala:
Přičítání se dělá operátorem +, tedy plus. Víc toho na takhle položený dotaz poradit nejde.
total
Profil *
//prictene jsem volal do inputu a z inputu, ale defungovalo to, tak vlastne ted pricetene neni.
function test(c,v,o,h){
 //tady potrebuju pricist
 vysledek = (prictene + h);
}

<p onclick="test(1,'12','a',0)">a. -----</p>
<p onclick="test(1,'12','b',1)">b. -----</p>
<p onclick="test(1,'12','c',0)">c. -----</p>
Chamurappi
Profil
Reaguji na totala:
Operátor plus umí i spojovat řetězce. Pokud jeden z operandů (tedy prictene nebo h) je řetězec, převede se na řetězec i ten druhý a spojí se jako řetězec. Jestli je v prictene obsah value z nějakého formulářového prvku, tak to je řetězec. Řetězec můžeš převést na číslo třeba funkcí parseFloat(prictene).
total
Profil *
Tak staci napsat parsefloat(h + h);?


To nefunguje. Vysledek je bud 0 nebo 2
anonymníí
Profil *
total:
To nefunguje. Vysledek je bud 0 nebo 2
:-)

A jak si představuješ, že by to mělo fungovat? Buď (po dosazení) budeš mít součet 0+0=0, nebo 1+1=2. FUnguje to dobře.
peta
Profil
Chamurappi:
function test(c,v,o,h)
test(1,'12','a',0)
-> h = 0
test(1,'12','b',1)
-> h = 1
Zadne parseFloat nepotrebuje. Leda by mel jiny kod.

total:
var vysledek = 0;
function test(c,v,o,h)
{
vysledek += h;
alert(vysledek);
}
Jenze takhle ti to bude pocitat kazde kliknuti. Lepsi by bylo odpovedi ukladat do pole a pak cyklem secist cele pole.
pole[c] = h; // a samozrejme nahore var pole = [];
vysledek = eval(pole.join('+')); // lepe pouzit cyklus
alert(vysledek);
total
Profil *
Bezva, to funguje super a je to hotové :-) Děkuju
peta
Profil
Mozna bych tam udelal i vyznaceni odpovedi
<!DOCTYPE html>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>test</title>
<style>
div div {color:#888; cursor:pointer;}
div div:hover {color:#b00;}
div div.sel {color:#080; font-weight:bold;}
</style>
</head>

<body>
<div>
<b>1. ----</b>
<div onclick="select(this,0,0)">a. klikni</div>
<div onclick="select(this,0,1)">b. klikni</div>
<div onclick="select(this,0,0)">c. klikni</div>
</div>
<br>
<div>
<b>2. ----</b>
<div onclick="select(this,1,0)">a. klikni</div>
<div onclick="select(this,1,1)">b. klikni</div>
<div onclick="select(this,1,1)">c. klikni</div>
</div>
<br>
<div id="score"></div>

<script>
var resp = [0,0];
function select(div,num,val)
{
var score, nodes, i;
resp[num] = val;
score = eval(resp.join('+'));
document.getElementById('score').innerHTML = 'Skore: '+score;
// vyznaceni
nodes = div.parentNode.childNodes;
for (i=0;i<nodes.length;i++) {if (nodes[i].nodeType==1) {nodes[i].className = '';}}
div.className = 'sel';
}
</script>

</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: