Autor | Zpráva | ||
---|---|---|---|
Light King Profil |
#1 · Zasláno: 27. 8. 2007, 18:48:57
Ahoj, mam kod napr.
a chtel bych, aby kdyz vyberu <option value="1">aaaa</option> vypsalo text...treba "cccc" a kdyz vyberu <option value="2">bbbb</option> tak napr "dddd". Slo by to nejak udelat ? (ten text by potom byl jinej to je jen pro priklad :) ) Diky moc kazdemu, kdo poradi. |
||
Nox Profil |
#2 · Zasláno: 27. 8. 2007, 18:55:32
Kam vypsalo? Někde do stránky? Přes javascript
<select name="jmeno" onchange="Vypis(this)"> <option value="1">aaaa</option> <option value="2">bbbb</option> </select> <span id="nazev"></span> <script type="text/javascript"> function Vypis(sel) { document.getElementById("nazev").innerHTML=document.sel.options[sel.se lectedIndex].innerHTML; } </script> |
||
Light King Profil |
#3 · Zasláno: 27. 8. 2007, 19:23:34
nejak mi to nefunguje :(
|
||
Nox Profil |
#4 · Zasláno: 27. 8. 2007, 19:29:22 · Upravil/a: Nox
mám tam omylem mezeru v té [...] jestlis to kopíroval...
Jinak teď nevim...zkus FireFox DOM inspectora co to vypíše |
||
Light King Profil |
#5 · Zasláno: 27. 8. 2007, 19:32:22
nic mi to nevypise ani tak :( ale i tak diky :)
|
||
Trejpa Profil |
#6 · Zasláno: 28. 8. 2007, 01:05:25
Light King
Na pořadí elementu SCRIPT může záležet. Funkční úprava Noxova řešení: (bez JavaScriptu si uživatel ani vyhledávací robot neškrtne) <script type="text/javascript"> <!-- function Vypis(a) { if (a==1) document.getElementById("nazev").innerHTML="Text pro první volbu"; if (a==2) document.getElementById("nazev").innerHTML="Text pro druhou volbu"; } //--> </script> <form name="sel" action="" onsubmit="return false;"> <select name="jmeno" onchange="Vypis(this.value);" onclick="Vypis(this.value);"> <option value="1">aaaa</option> <option value="2">bbbb</option> </select> </form> <div id="nazev"></div> Moje řešení: (při vypnutém JavaScriptu je vše vidět) <script type="text/javascript"> <!-- function Zobraz(a) { document.getElementById("a01").style.display = "none"; document.getElementById("a02").style.display = "none"; document.getElementById("a03").style.display = "none"; if (a==1) document.getElementById("a01").style.display = "block"; if (a==2) document.getElementById("a02").style.display = "block"; if (a==3) document.getElementById("a03").style.display = "block"; } //--> </script> <form name="druhy" action="" onsubmit="return false;"> <select name="druhe" onchange="Zobraz(this.value);"> <option value="1">aaaa</option> <option value="2">bbbb</option> <option value="3">cccc</option> </select> </form> <div id="a01">Text 01</div> <div id="a02">Text 02</div> <div id="a03">Text 03</div> <script type="text/javascript"> <!-- Zobraz(1); // prvotní inicializace //--> </script> |
||
Str4wberry Profil |
#7 · Zasláno: 28. 8. 2007, 01:09:00
Trejpa
při vypnutém JavaScriptu je vše vidět Myslím, že to není moc cílem, protože nebude poznat, co k čemu patří. |
||
Trejpa Profil |
#8 · Zasláno: 28. 8. 2007, 01:20:16
Str4wberry
nebude poznat, co k čemu patří. Může být. Formulář se vloží také scriptem a do každého DIVu se dá vhodný nadpis. Ale to je jen kosmetická úprava. |
||
Str4wberry Profil |
#9 · Zasláno: 28. 8. 2007, 01:25:48
Trejpa
Můžeš mi prosím ukázat takový příklad, nedovedu si to moc představit. Nechceš snad celý <select> > <option> vypsat JS. |
||
Trejpa Profil |
#10 · Zasláno: 28. 8. 2007, 01:30:16
Str4wberry
Nechceš snad celý <select> > <option> vypsat JS. A proč ne? A i kdyby v tom byl problém, tak ten formulář může mít defaultně display: none a JavaSript ho může zviditelňovat. |
||
Trejpa Profil |
#11 · Zasláno: 28. 8. 2007, 01:36:37 · Upravil/a: Trejpa
Str4wberry
Můžeš mi prosím ukázat takový příklad Takhle: <script type="text/javascript"> <!-- function Zobraz(a) { document.getElementById("a01").style.display = "none"; document.getElementById("a02").style.display = "none"; document.getElementById("a03").style.display = "none"; if (a==1) document.getElementById("a01").style.display = "block"; if (a==2) document.getElementById("a02").style.display = "block"; if (a==3) document.getElementById("a03").style.display = "block"; } function Pisform() { var a=""; a+='<form name="druhy" action="" onsubmit="return false;">'; a+='<select name="druhe" onchange="Zobraz(this.value);">'; a+='<option value="1">aaaa</option>'; a+='<option value="2">bbbb</option>'; a+='<option value="3">cccc</option>'; a+='</select></form>'; document.write(a); } Pisform(); //--> </script> <div id="a01"><h2>Nadpis 01</h2><p>Text 01</div> <div id="a02"><h2>Nadpis 02</h2><p>Text 02</div> <div id="a03"><h2>Nadpis 03</h2><p>Text 03</div> <script type="text/javascript"> <!-- Zobraz(1); // prvotní inicializace //--> </script> |
||
Str4wberry Profil |
#12 · Zasláno: 28. 8. 2007, 01:36:47
Trejpa
To je geniální, někdo vypne JavaScript a neuvidí formulář :). |
||
Trejpa Profil |
#13 · Zasláno: 28. 8. 2007, 01:47:45
Str4wberry
To je geniální, někdo vypne JavaScript a neuvidí formulář :). Ano, je to geniální, protože v tu chvíli ho na nic nebude potřebovat - slouží jen k přepínání části stránek - a ty jsou bez JavaScriptu vypsány všechny. Potom tam už nestraší a nemate neJavaScriptové návštěvníky. Ostatně podobnou metodu přepínání informací používá třeba i validátor - tam také: je-li JavaScript funkční, klikáním se přepíná metoda vstupu, není-li, vše je vypsáno pod sebou a původní přepínače tam nejsou (píše/zviditelňuje je script). |
||
Str4wberry Profil |
#14 · Zasláno: 28. 8. 2007, 01:58:03
Trejpa
Aha, tak to každý myslíme něco jiného. Já myslel něco ve smyslu — vyberu z <option> aaaa a někde vedle se mi ukáže: „Vybral jsi možnost cccc“. A ne takovéto „kartové“ přepínání. |
||
Trejpa Profil |
#15 · Zasláno: 28. 8. 2007, 02:07:08
Str4wberry
vyberu z <option> aaaa a někde vedle se mi ukáže: „Vybral jsi možnost cccc“. Ano, pokud by formulář sloužil i na něco jiného (odesílání) a zobrazení informace by bylo jen doplněním, tak je skrývání formuláře samozřejmě nežádoucí. Pokud je ale jen k záložkování, jak jsem pochopil ze zadání, tak je tam formulář bez scriptu nadbytečný. |
||
Časová prodleva: 17 let
|
0