Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevok: 1 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.05.09
Prihlásený: 14.02.14
Príspevky: 106
Témy: 52
Príspevok NapísalOffline : 02.04.2013 17:34

Zdravím, mám problém, ktorý neviem prelusknúť. Predpokladám, že pôjde o nejakú drobnosť. Mám v HTML jeden select box s 3 položkami. Od option, ktorú si návštevník vyberie je závislá CSS vlastnost display konkrétneho divu. Jednoduchý princíp, uvidíte ho v kóde nižšie. Táto funkcia funguje. Zároveň mám cez ďalšiu funkciu prispôsobený vzhľad týchto select boxov. Tá funkcia sama o sebe funguje tiež, ale keď sú na jeden select box naviazané obe funkcie tak sa to niekde žuje a nejde to. Budem vďačný každému kto sa na to pozrie.

HTML
Kód:
<select name="druh" id="druh_receptu" class="styled">
    <option value="0">Múčniky</option>
    <option value="1">Dezerty</option>
    <option value="2">Šaláty</option>                  
</select>

<div id="recept_mucnik">
    Text receptu
</div>
<div id="recept_dezert">
    Text receptu
</div>
<div id="recept_salat">
    Text receptu
</div>

<script type="text/javascript">
    FormFields.init();   
    CustomForm.init();                 
</script>


CSS
Kód:
#recept_dezert, #recept_mucnik, #recept_salat {
   display: none;
}


JavaScript pre stylovanie Select Boxov
Kód:
var CustomForm =
{
  init: function()
  {
    var selectElements = document.getElementsByTagName("select"), span = Array(), textnode, option, active;
    for(var i = 0; i < selectElements.length; i++)
    {
      if(selectElements[i].className == "styled")
      {
        var option = selectElements[i].getElementsByTagName("option");
        var active = option[0].childNodes[0].nodeValue;
        var tnode = document.createTextNode(active);
        for(var j = 0; j < option.length; j++)
        {
          if(option[j].selected == true)
          {
            var tnode = document.createTextNode(option[j].childNodes[0].nodeValue);
          }
        }
        span[i] = document.createElement("span");
            span[i].className = "select";
            span[i].id = "select" + selectElements[i].name;
        span[i].appendChild(tnode);
        selectElements[i].parentNode.insertBefore(span[i], selectElements[i]);
        if(!selectElements[i].getAttribute("disabled"))
        {
          selectElements[i].onchange = CustomForm.choose;
        }
        else
        {
          selectElements[i].previousSibling.className = selectElements[i].previousSibling.className += " disabled";
        }
      }
    }
  },
  choose: function()
  {
    option = this.getElementsByTagName("option");
    for(var k = 0; k < option.length; k++)
    {
      if(option[k].selected == true)
      {
        document.getElementById("select" + this.name).childNodes[0].nodeValue = option[k].childNodes[0].nodeValue;
      }
    }
  },
};


JavaScript pre zobrazovanie divov
Kód:
var FormFields =
{
   init: function()
   {
      // vymedzenie select boxu, ktory vyvolava zmeny
      var selectBox = document.getElementById("druh_receptu");   
      selectBox.onchange = FormFields.showFields;   
   },
   showFields: function()
   {
      var box = document.getElementById("druh_receptu");
      // vymedzenie divov s premenlivou display vlastnostou      
      var mucnik = document.getElementById("recept_mucnik");   
      var dezert = document.getElementById("recept_dezert");
      var salat = document.getElementById("recept_salat");
      
      // priradenie kazdej hodnote select boxu seriu vlastnosti pre divy
      if(box.value == 0)
      {
         mucnik.style.display = "block";
         dezert.style.display = "none";
         salat.style.display = "none";      
      }
      
      else if(box.value == 1)
      {
         mucnik.style.display = "none";
         dezert.style.display = "block";
         salat.style.display = "none";   
      }      
      else if(box.value == 2)
      {
         mucnik.style.display = "none";
         dezert.style.display = "none";
         salat.style.display = "block";   
      }
   },
};


Problém je v tom, že keď sú prítomné obe funkcie tak funguje vždy len jedna. Mám taký pocit, že tá prvá funkcia nejakým spôsobom deformuje hodnotu option.value.


Odpovedať na tému [ Príspevok: 1 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. C pomoc s funkciami

[ Choď na stránku:Choď na stránku: 1 ... 4, 5, 6 ]

v Assembler, C, C++, Pascal, Java

165

9258

06.02.2010 17:33

ado21 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Prenos premennych medzi funkciami

v PHP, ASP

6

529

27.08.2012 4:26

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako nastaviť všetkým EditBoxom jedno PopUp menu s funkciami?

v Delphi, Visual Basic

9

743

01.08.2010 22:22

Manny Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. M Firefox problém so sťahovaním a GCH problém s updatom

v Sieťové a internetové programy

0

1354

23.01.2015 16:06

Stary Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problém so zobrazovaním www stránok, problém užívateľa

v Operačné systémy Microsoft

17

2130

23.03.2009 10:41

FERDA23 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Záhadný problém s PC... problém procesora?

[ Choď na stránku:Choď na stránku: 1, 2 ]

v AMD - Advanced Micro Devices

45

4720

26.04.2012 11:14

netpeter77 Zobrazenie posledných príspevkov

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. Battlefield 3 SKIDROW problem + win7 problem

v Počítačové hry

1

1572

22.09.2012 23:51

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problém s MB ASUS P5K - problém s Realtek

v Ovládače

4

2296

14.06.2008 10:36

$ph!nX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problém s HDD / Problém s bootovaním

v Pevné disky a radiče

4

1458

22.02.2013 14:08

lucifer666x Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. problem

v Assembler, C, C++, Pascal, Java

2

289

06.10.2012 18:21

kustom456 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. problem

v Notebooky a netbooky

6

244

18.12.2013 21:50

screw Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. problem

v Operačné systémy Microsoft

2

749

09.08.2007 22:29

shiro Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problém?

v Ostatné grafické karty

10

1145

22.09.2009 12:37

mr_HANN Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. problem

v Operačné systémy Unix a Linux

2

597

28.12.2008 11:49

branislav.poldauf Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. problém

v Webhosting a servery

2

1038

17.08.2009 17:51

scrysurn Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. problem

v nVidia grafické karty

1

848

05.03.2007 21:40

Shark NX Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra