Autor Zpráva
AAAnonym
Profil
Mám docela jednoduchý formulář, všechno funguje jak má, kromě jedné věci, nad kterou mi už opravdu zůstává rozum stát... Funguje tak, že podle výběru ze selectu umocňuje na 2,3, 2,4 atd... čísla od a do b. Pokud vyjde výsledek, který se rovná 0 nebo je menší, než nula, vyjde "Nelze" Všechny výdledky se zaokrouhlují nahoru, kromě toho, když vyjde např. 0,1 - v tom případě vyjde 1.
Jsou tam ještě další výpočty, ale to napíšu dole ve zdrojovém kódu.
Problém je, že když napíšu od 4 do 5, vyjde 1, a mělo by vyjít "Nelze", protože od pětky se odečítá 1 (4 a 4) a od obou čísel se odečítá 4 (0 a 0) Když seumocní číslo od 0 do nuly, nikdy nemůže vyjít 1, tak nechápu jak je to možné....
Teď ten zdroják:
<form name="form">
  Vycvičení od:<input name="a"> do: <input name="b"> Úroveň cvičiště: <input name="c"> Výsledek: <input name="d">
    <input type="button" onClick="secti();" value="Odeslat">


<select name="staty">
<option value="Síla" id="1" selected="selected">Síla</option>
<option value="Dovednost" id="2">Dovednost</option>
<option value="Obratnost" id="3">Obratnost</option>
<option value="Odolnost" id="4">Odolnost</option>
<option value="Charisma" id="5">Charisma</option>
<option value="Inteligence" id="6">Inteligence</option>

</select>
</form>

<script type="text/javascript">
  function secti () {
var a = document.form.a.value;
var b = document.form.b.value-1;
var c = document.form.c.value;
var suma = 0;
  for(i= a; i<=b; i++){ suma = suma+ Math.floor(Math.max(1,(Math.pow(i-4,
(((document.getElementById('1').value ===document.form.staty.value)*2.6)+
 ((document.getElementById('2').value ===document.form.staty.value)*2.5)+
 ((document.getElementById('3').value ===document.form.staty.value)*2.3)+
 ((document.getElementById('4').value ===document.form.staty.value)*2.3)+
 ((document.getElementById('5').value ===document.form.staty.value)*2.5)+
 ((document.getElementById('6').value ===document.form.staty.value)*2.4)))*
(1-(c*0.02)))))
 }
if(suma>0) {
  document.form.d.value = suma; 
}
else {
  document.form.d.value = "Nelze"; 
}
 }
</script>
Dandys2012
Profil *
Čoveče, máš otázku moc složitě napsanou, takže ti vůbec nerozumím.

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