| | |
| Stránka: 1 z 1
| [ Príspevok: 1 ] | |
Autor | Správa |
---|
Registrovaný: 30.05.09 Prihlásený: 14.02.14 Príspevky: 106 Témy: 52 | Napísal maťo*: 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. HTMLKó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> CSSKód: #recept_dezert, #recept_mucnik, #recept_salat { display: none; } JavaScript pre stylovanie Select BoxovKó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 divovKó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.
|
|
| Stránka: 1 z 1
| [ Príspevok: 1 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| C pomoc s funkciami [ Choď na stránku: 1 ... 4, 5, 6 ] v Assembler, C, C++, Pascal, Java | 165 | 9258 | 06.02.2010 17:33 ado21 | | Prenos premennych medzi funkciami v PHP, ASP | 6 | 529 | 27.08.2012 4:26 Ďuri | | Ako nastaviť všetkým EditBoxom jedno PopUp menu s funkciami? v Delphi, Visual Basic | 9 | 743 | 01.08.2010 22:22 Manny | | 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 | | 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 | | Záhadný problém s PC... problém procesora? [ Choď na stránku: 1, 2 ] v AMD - Advanced Micro Devices | 45 | 4720 | 26.04.2012 11:14 netpeter77 | | Battlefield 3 SKIDROW problem + win7 problem v Počítačové hry | 1 | 1572 | 22.09.2012 23:51 walther | | Problém s MB ASUS P5K - problém s Realtek v Ovládače | 4 | 2296 | 14.06.2008 10:36 $ph!nX | | Problém s HDD / Problém s bootovaním v Pevné disky a radiče | 4 | 1458 | 22.02.2013 14:08 lucifer666x | | problem v Assembler, C, C++, Pascal, Java | 2 | 289 | 06.10.2012 18:21 kustom456 | | problem v Notebooky a netbooky | 6 | 244 | 18.12.2013 21:50 screw | | problem v Operačné systémy Microsoft | 2 | 749 | 09.08.2007 22:29 shiro | | Problém? v Ostatné grafické karty | 10 | 1145 | 22.09.2009 12:37 mr_HANN | | problem v Operačné systémy Unix a Linux | 2 | 597 | 28.12.2008 11:49 branislav.poldauf | | problém v Webhosting a servery | 2 | 1038 | 17.08.2009 17:51 scrysurn | | problem v nVidia grafické karty | 1 | 848 | 05.03.2007 21:40 Shark NX |
| 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
|
|