Autor Zpráva
blbec
Profil *
mám formulř který až doteď fungoval jenže do něj chi umístit cyklus for ale nevím kam a nevím jak
zkoušel jsem už snad všechno, naPŘ.
<script type="text/javascript">
for (i=parseInt(a.value); i<=parseInt(b.value); i++; )
  function secti () {
 with (document.form)  { c.value = Math.pow(parseInt(i.value),2); }
 }
</script>
 
<form name="form">
  <input name="a"> + <input name="b"> = <input name="c">
    <input type="button" onClick="secti();" value="Odeslat">
</form>
ale nikdy to nevyjde. Potřebuju všechna čísla z value od políčka a do b umocnit na druhou a potom to sečíst....jenže fakt nevím co dělat s tím cyklem. mám tam hromadu chyb, to je mi jasné
Joker
Profil
blbec:
Ten skript je naprostý chaos.
• Proč je cyklus dřív než to function, mělo by to být snad obráceně. Takhle se v cyklu definuje funkce, což je nesmysl.
• Navíc by ten for musel být ještě za with(document.form), jinak neexistují proměnné a a b.
• V proměnné i je výsledek parseInt, tedy číslo nebo NaN, ani jedno nemá atribut value, takže parseInt(i.value) je nesmysl.
• Kdyby to bylo spravené a funkční, neřeší se, že parseInt může vrátit i NaN, takže když v jednom z políček nebude číslo a ve druhém ano, vznikne nekonečný cyklus.
• Nekonečný cyklus by vznikl i v případě, kdy b je menší než a.
blbec
Profil *
no jo jenže na jpw opravdu není napsané nic o formulářích s cyklůy (aspoň pokud vím) takže jsem ten kód prostě jen vycucal z prstu...
Opravil jsem to a vypadá to takhle ale pořád to nefunguje:
<script type="text/javascript">
function secti () {
 with (document.form) for (i=parseInt(a.value); i<=parseInt(b.value); i++; ) { c.value = Math.pow(i,2); }
 }
</script>
 
<form name="form">
  <input name="a"> + <input name="b"> = <input name="c">
    <input type="button" onClick="secti();" value="Odeslat">
</form>
Sir Tom
Profil
blbec:
1/ ten JS má být až za formulářem
2/ a v něm

<script type="text/javascript">
function secti(){
  var a = document.form.a.value;
  var b = document.form.b.value;
  var mensi;
  var vetsi;
  var suma = 0;
  if(a<b){
   mensi = a;
   vetsi = b;
  }else{
   mensi = b;
   vetsi = a;
  }
  for(i=mensi; i<=vetsi; i++){
   suma = suma + i*i; 
  }
  document.form.c.value = suma;
 }
</script>
Snad jsem pochopil správně, že se má počítat suma čísel od a do b...
blbec
Profil *
ok když už jsme u if a var, chtěl bych se ještě zeptat (a nechce se mi kvli tomu zakládat nové téma), jak se dá udělat proměnná ze zvolené položky ve výběrovém poli ve formuláři?


edit: mám totiž ve formuláři ve výběrovém poli nějaká čísla a pokud se zvolené číslo odtud bude rovnat např. dvojce, vynásobí se tohle číslo 1. Pokud se nebude rovnat dvojce, bude vynásobeno číslem 0.
Sir Tom
Profil
blbec:
Nové téma bych založil, ale budiž.
Hodnotu ve výběrovém poli (select) zjistíš jako
document.jmenoFormulare.jmenoSelectu.value;
takže stačí například
var hodnota = document.form.vyberovka.value;

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: