[ 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 | 52
NapísalOffline : 02.04.2013 17:34 | Problém s 2 funkciami

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.


 [ Príspevok: 1 ] 


Problém s 2 funkciami



Podobné témy

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

Prenos premennych medzi funkciami

v Backend

6

598

27.08.2012 4:26

Ďuri

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 Backend

165

9870

06.02.2010 17:33

ado21

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

Ako nastaviť všetkým EditBoxom jedno PopUp menu s funkciami?

v Ostatné

9

867

01.08.2010 22:22

Manny

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é programy

0

1670

23.01.2015 16:06

Stary

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

Problém s AMD Adrenaline alebo je to softvér či HW problém?

v AMD grafické karty

5

539

07.02.2026 0:30

funsat

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 Windows

17

2481

23.03.2009 10:41

FERDA23

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

45

5457

26.04.2012 11:14

netpeter77

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

Battlefield 3 SKIDROW problem + win7 problem

v Hry a herné konzoly

1

1942

22.09.2012 23:51

walther

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

2776

14.06.2008 10:36

$ph!nX

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

1770

22.02.2013 14:08

lucifer666x

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

problem

v Frontend

8

935

26.02.2007 22:36

jurino88

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

problem

v Sieťové programy

3

593

11.07.2008 13:47

Jaro

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

problem

v Pevné disky a radiče

7

764

22.09.2009 17:28

Milan.H

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

problém

v Hosting, servery a domény

2

1193

17.08.2009 17:51

scrysurn

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

Problem?

v Pamäte

11

898

05.05.2009 17:55

bezi1112

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

Problem?

v Ostatné

2

842

26.03.2009 19:27

Ominous



© 2005 - 2026 PCforum, edited by JanoF