Autor Zpráva
Samuel1
Profil
Dobrý deň.
Už dlho mám problémy s jedným scriptom.
Snažil som sa vytvoriť "formulár" kde sa do prvého políčka zadá suma, klikne sa na tlačítko "Kontroluj" a script zistí či máte nárok na zľavu. Ak je suma nižšia alebo rovnaká ako 140 vyskočí vám okno, ktoré hovorí že nárok na zľavu nemáte. Ak je suma vyššia ako 140 má sa vykonať script ktorý zo sumy odčíta 20% (vložil som to tam v podobe násobenia číslom 0.8). Mám pocit že mám všetko tak ako má býť, ale script nefunguje, aspoň to odčítanie 20%. Takže preto som tu, prosím o radu, prosím o trpezlivosť kedže som takmer úplný začiatočník a vpred ďakujem za odpoveď.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title></title>
  </head>
  <body>
  <form name="f">
  <input type="text" name="cislo" /> 
  <input type="button" value="Kontroluj" onClick="Hodnota()" /> <br />
  Finálna <input type="text" name="finalna" /> <br />
  </form>
  <script language="JavaScript">
  function Hodnota ()
  {
  cislo=eval(document.f.cislo.value);
  if (cislo>140) finalna=cislo*0.8;
  else if (cislo<140) alert ('Nemáte nárok na zľavu.'); 
  else alert ('Nemáte nárok na zľavu.')   
  }
   </script>
  </body>
</html>
yFang
Profil
finalna=cislo*0.8;
Takhle jenom nastavíš proměnou finalna, aby se to dosadilo, musíš nějak říct, že o co se jedná, např.:
document.f.finalna.value

Jinak nechápu, proč tam máš ten else if, když to má stejně hodit tu samou hlášku.

Každopádně nezapomeň tohle kontrolovat i na straně serveru, javascript se dá v tomhle snadno obejít.
Trejpa
Profil
Samuel1:
Nikam tu výslednou částku nezapisuješ. Máš tam chyby.

function Hodnota()
  {
  cislo=eval(document.f.cislo.value);
  if (cislo>140) document.f.finalna.value=cislo*0.8
  else window.alert('Nemáte nárok na zľavu.');
  }

Možná by ale bylo vhodné do výsledného políčka zapisovat i nezlevněnou částku:

function Hodnota()
  {
  cislo=eval(document.f.cislo.value);
  if (cislo>140) document.f.finalna.value=cislo*0.8
  else
    {
    document.f.finalna.value=cislo;
    window.alert('Nemáte nárok na zľavu.');
    }
  }

Ještě bys mohl výsledek zaokrouhlovat. Mimochodem, před else se nepíše středník.
Samuel1
Profil
Veľmi rýchle odpovede, ktoré aj veľmi pomohli! Ešte raz ďakujem, ale mám ešte jednu otázku:
Ak bude pole prázdne, ako spravím aby sa po kliknutí na "Kontroluj" vyhodilo alert okno so špecifickým textom (napr. Nezadali ste sumu.).

EDIT: Tému môžete uzavrieť!

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: