Autor | Zpráva | ||
---|---|---|---|
Fisak Profil |
#1 · Zasláno: 11. 11. 2013, 13:31:36
Dobrý den. Používám skript JScolor což do formulářů vloží barvu jaká je ve formuláři zadaná a po najetí se zobrazí takový dynamický měnič barvy. Jenže v mém skriptu to funguje bohužel jen po prvním načtení nikoliv po změně selectu viz.
<script type='text/javascript' src='./../../../js/plugins/jscolor/jscolor.js'></script> <form method="post" name="template_creator"> <select name="template_laytout"> <option value="3row">Třísloupcový</option> <option value="2rowR">Dvousloupcový pravý</option> <option value="2rowL">Dvousloupcový levý</option> <option value="banner">Bannerový</option> </select> <div id='show_inputs'></div> <script type='text/javascript'> // script je pod form, aby zajištoval plynulí chod select_menu = document.template_creator.template_laytout; // zajištění selectoru jako proměnné max = select_menu.options[select_menu.selectedIndex].value; if(max == '3row') inputs = "<br>Vzhled stránky<br><table><tr><td>Barva pozadí stránky:</td><td> #<input name='body_bg_color' type='text' class='color' value='FFFFFF' size='7' /></td></tr></table>"; if(max == '2rowR') inputs = "<br>Vzhled stránky<br><table><tr><td>Barva pozadí stránky:</td><td> #<input name='body_bg_color' type='text' class='color' value='FFFFFF' size='7' /></td></tr></table>"; if(max == '2rowL') inputs = "<br>Vzhled stránky<br><table><tr><td>Barva pozadí stránky:</td><td> #<input name='body_bg_color' type='text' class='color' value='FFFFFF' size='7' /></td></tr></table>"; if(max == 'banner') inputs = "<br>Vzhled stránky<br><table><tr><td>Barva pozadí stránky:</td><td> #<input name='body_bg_color' type='text' class='color' value='FFFFFF' size='7' /></td></tr></table>"; document.getElementById('show_inputs').innerHTML = inputs; // vložení obsahu proměnné do div#show_inputs select_menu.onclick = function() { // funkce která reaguje na změnu v selectoru max = this.options[this.selectedIndex].value; // zjistění čísla v parametru value inputs = ""; // zavedení proměnné inputs if(max == '3row') inputs = "<br>Vzhled stránky<br><table><tr><td>Barva pozadí stránky:</td><td> #<input name='body_bg_color' type='text' class='color' value='FFFFFF' size='7' /></td></tr></table>"; if(max == '2rowR') inputs = "<br>Vzhled stránky<br><table><tr><td>Barva pozadí stránky:</td><td> #<input name='body_bg_color' type='text' class='color' value='FFFFFF' size='7' /></td></tr></table>"; if(max == '2rowL') inputs = "<br>Vzhled stránky<br><table><tr><td>Barva pozadí stránky:</td><td> #<input name='body_bg_color' type='text' class='color' value='FFFFFF' size='7' /></td></tr></table>"; if(max == 'banner') inputs = "<br>Vzhled stránky<br><table><tr><td>Barva pozadí stránky:</td><td> #<input name='body_bg_color' type='text' class='color' value='FFFFFF' size='7' /></td></tr></table>"; document.getElementById('show_inputs').innerHTML = inputs; // vložení obsahu proměnné do div#show_inputs } </form> |
||
preca1 Profil |
#2 · Zasláno: 14. 11. 2013, 00:39:00
Zdravim,
nějakej logickej problém sem nenašel, ale máš tam pár "chybek", který na tý stránce můžou dělat neplechu. Na selectu bych odchytával událost change a ne click (viz Vypsat text podle výběru z <option>), i když podle mýho testu by to mělo fungovat i tak. Dál to vypadá, že používáš globální proměnný, to taky neni dobrej nápad. Spíš bude lepší dodat odkaz na živou ukázku. |
||
1Pupik1989 Profil |
#3 · Zasláno: 14. 11. 2013, 00:50:21
Psal mi na skypu. Problém byl v tom, že script "jscolor" odchytá všechny inputy s classname color. Takže logicky když je přidá, tak nemají přiřazené nic.
To s onchange jsem mu také řekl. Měl by přiložit i ten script a výsledek, ale asi se tak nestane, jsou to dva dny. |
||
Časová prodleva: 10 let
|
0