Autor Zpráva
Joan
Profil
Příkazu SWITCH rozumím a čítankový příklad samotného scriptu s vypsáním pomocí document.write, ale bez použití formuláře je jasný.
1) Jenomže při spojení s formulářem se mi vypisuje jen a pouze hodnota, kterou mám uvedenou na začátku jako proměnnou. JS konzola se tváří spokojeně, ale někde tam musím mít školáckou chybu.

2) jak se "zapojí" tlačítko Enter, aby hned od vložení první hodnoty do inputu suplovalo tlačítko Submit? Zatím mi po použití Enteru vložený text úplně zmizí.

Díky!
Samsonweb
Profil *
Funkci musíte předat parametr.
function nakup(ovoce)
{
  switch(ovoce)
  {

<input type="submit" value="Vepi&scaron; požadovan&eacute; ovoce" onclick="nakup(this.parentElement.ovoce.value);">
Witiko
Profil
Zdravím naši javascriptovou geek. :)

Kromě toho, že ovoce je nedeklarovaná globální proměnná, tak zásadní chyba skutečně je školácká:

document.pokus.ovoce.value = "jablka"


místo

document.pokus.ovoce.value == "jablka"


Příïřazuješ místo testování hodnoty, navíc if uvnitř switch snad není vůbec nutný, nechápu důvod použití - switch jako takový je elegantním nahrazením if a else. Kód by měl podle mého vypadat takto:

function nakup(ovoce) {
     switch(ovoce)
     {
          case "jablka" :
          {
          alert("Jablka stojí 19kč/kg");
          break;
          }
          case "pomeranče" :
          {
          alert("Pomeranče stojí 22kč/kg");
          break;
          }
          case "banány" :
          {
          alert("Pomeranče stojí 18kč/kg");
          break;
          }
          case "švestky" :
          {
          alert("Švestky stojí 32kč/kg");
          break;
          }
          default :
          alert("Bohužel pro "+ovoce+" musíte \n někam jinam...");    
    }
  }


Jinak příště hoď kód rovnou sem.
Joan
Profil
Witiko:
Také zdravím! Celé webové programování je tak zajímavé hraní :-) . Dlouho jsem programátory považovala za tvory podobné šamanům (včetně mého tatínka).
...tak zásadní chyba skutečně je školácká...
Si sypu popel na hlavu, na tohle už nezapomenu, díky Ti

S tou deklarací proměnné ovoce si ale vážně nevím rady, protože když ji vynechám, tak dostávám alert s hláškou zobrazenou níže a když zadám natvrdo var ovoce = "cokoliv" tak vždycky toto dostanu v alertu. Čili ta do inputu vepsaná hodnota se mi stále nepředává.

Protože
onclick="nakup(this.parentElement.ovoce.value);"

způsobil, že formulář úplně přestal reagovat, tak jsem s patřičnými změnami nechala původní

function nakup(ovoce)
            {
   switch(ovoce)
   {
        case "jablka" :
        {
                window.alert("Jablka stojí 19kč/kg");
        break;
        }
        case "pomeranče" :
        {
                window.alert("Pomeranče stojí 22kč/kg");
        break;
        }
        case "banány" :
        {
                window.alert("Pomeranče stojí 18kč/kg");
        break;
        }
        case "švestky" :
        {
                window.alert("Švestky stojí 32kč/kg");
        break;
        }
        default :
        window.alert("Bohužel pro "+ovoce+" musíte \n někam jinam...");    
  }
  }


a ať jsem vyplňovala, co mě napadlo, dostala jsem vždy vskutku kouzelnou hlášku:



a škoda, že už nenapsal kam...

Jinak v učebnici se "ručně" měnil druh ovoce přímo v samotném scriptu, takže to šlapalo a autor (Rastislav Škultéty) tam měl jen ty vyznačené složené závorky (function jsem si přidala já).

Samsonweb
value="Vepi&scaron; požadovan&eacute; ovoce"
toto bych prosila aspoň částečně přeložit!

Jinak příště hoď kód rovnou sem.
Poctivě jsem se řídila napsaným pravidlem: "...nezapomínejte odkázat na živou ukázku!"

EDIT: Heč, přišla jsem na to dneska ráno sama :-))
Proměnnou ovoce jsem uvnitř funkce deklarovala jako
var ovoce = document.pokus.ovoce.value;
protože jsem si vzpoímněla, že jsem něco podobného dělala u kontroly formulářových dat, v onClicku ponechala pouze
onClick="nakup();"

a dělá to přesně to, co má
Hezký den!
Witiko
Profil
Joan:
"Poctivě jsem se řídila napsaným pravidlem: "...nezapomínejte odkázat na živou ukázku!""
Ale napsané pravidlo "Je-li to možné, zadejte co nejvíce podrobností. Ideálně ukázku kódu..." jsi už minula :D

Kouzelná hláška na mě dělá dojem, jako bys jako argument nepředávala document.pokus.ovoce.value, ale samotný pointer na <input> element - document.pokus.ovoce. :)

Do budoucna radím navyknout si psát události malými písmeny, tzn. onclick. Jde o zlozvyk, který může způsobit u určitých prohlížečů problémy.

Osobně na sebe také nahlížím jako na Šamana, alespoň to byla jediná třída ve World of Warcraft za kterou dle mého mělo smysl hrát (pokud mohu za tu dobu co jsem hru hrával soudit), ale to odbočujeme od tématu. :)

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: