Autor | Zpráva | ||
---|---|---|---|
dako Profil |
#1 · Zasláno: 5. 1. 2012, 19:14:16
Ahojte, potreboval by som poradit, ako v danom kóde ked vyberiem "Chcem vlastnú možnosť" tak potrebujem, aby mi vedla toho vyskocila, prípadne sa aktivovala textarea, kde si mozem napísať svoju vlastnú hodnotu (počet kusov, ktory ja chcem a nie je v možnostiach) a tu hodnotu z textarey potrebujem dalej používať...
<td> <script> function vypln(policko){ hodnota = policko.options[policko.selectedIndex].value // hodnota = policko.value //funguje pouze v modernich prohlizecich document.getElementById('info').innerHTML = hodnota; } function moznost </script> <select onchange="vypln(this)"> <option value="0">0ks </option> <option value="0,11 €">1ks </option> <option value="0,22 €">2ks </option> <option value="0,55 €">5ks </option> <option value="1,10 €">10ks </option> <option value="1,65 €">15ks </option> <option value="2,20 €">20ks </option> <option value="3,30 €">30ks </option> <option value="5,50 €">50ks </option> <option value="11,00 €">100ks </option> <option value="16,50 €">150ks </option> <option value="22,00 €">200ks </option> <option value="33,00 €">300ks </option> <option onclick="">Chcem vlastnú možnosť</option> </select> </td> <td><div id="info"></div></td> dufam že časť z kodu postačí na vyriesenie :) |
||
Str4wberry Profil |
#2 · Zasláno: 6. 1. 2012, 03:19:51
Na
onclick nespoléhej, někdo má v oblibě formuláře ovládat třeba jen klávesnicí.
Postup bude následující: 1) Přidat atribut value pro <option> s vlastní hodnotou.
2) Přidat vedle <input type=text> , který bude pomocí JS zneviditelněn.
3) Při onchange <select> u se podíváš, jestli náhodou není vybrána vlastní hodnota.
4) V případě, že je, tak zviditelníš vedlejší <input> .
O zpracování se potom postará serverový skript. |
||
dako Profil |
#3 · Zasláno: 7. 1. 2012, 15:18:31
vdaka, a mohol by si mi to prosimta podrobnejsie rozpisat zvlast aj ten JS, lebo s JS len zacinam...
|
||
Chamurappi Profil |
#4 · Zasláno: 7. 1. 2012, 15:36:04
Reaguji na Str4wberryho:
„Na onclick nespoléhej, někdo má v oblibě formuláře ovládat třeba jen klávesnicí.“ Na některých elementech jde onclick vyvolat i klávesnicí.
Ovšem na <option> ech naopak v některých prohlížečích nejde vyvolat nijak, proto je vážná chyba ho tam používat.
Reaguji na daka: „// hodnota = policko.value //funguje pouze v modernich prohlizecich“ V kterých nemoderních to nefunguje? „prípadne sa aktivovala textarea, kde si mozem napísať svoju vlastnú hodnotu“ Nestačil by spíš <input> ? Ta hodnota asi nebude víceřádková.
Mimochodem, co očekáváš, že ti tam člověk napíše? Asi počet kusů — s ks nebo bez ks ? Mezi číslem a jednotkou by měla být mezera, jako uživatel bych přemýšlel, když bych chtěl třeba 400 kusů, jestli mám napsat 400 , nebo 400 ks , nebo 400ks .
„hodnota =“ Používej var .
„podrobnejsie rozpisat zvlast aj ten JS, lebo s JS len zacinam“ Udělal bych to nějak takto: document.getElementById("ídéčkoInputu").style.display = (policko.hodnota == "hodnotaTohoPosledníhoOptionu") ? "inline" : "none"; výraz ? hodnota1 : hodnota2 je ternární operátor, vrací první či druhou hodnotu podle toho, zda je výraz pravdivý. Vlastností style.display nastavuješ CSS vlastnost display .
|
||
Str4wberry Profil |
#5 · Zasláno: 7. 1. 2012, 16:37:45
„Na některých elementech jde onclick vyvolat i klávesnicí.“
Jasně, ale co si pamatuji, když jsem to před nějakým časem zkoušel po nějaké debatě zde na diskusi s joem, tak jsou tam docela významné rozdíly napříč prohlížeči. Proto jsem jeho použití nedoporučoval: • Opera umí vyvolat onclick z klávesnice snad úplně na čemkoliv mimo elementů, kam se píše text nebo <select> u. (Při procházení Tab em (když je element otabindex ovaný) i přes Shift .) Dokonce ten onclick vyvolá na <option> u, i když se jen vybere šipkami ze <select> u (bez nějakého výběru z roletového seznamu).
• Explorer v quirku to umí snad na všem, čemu se přidá tabindex . A na většině <input> ů (snad mimo radio a checkbox ). Na <select> u ne.
• Firefox a Chrome se chovají víceméně podobně. Onclick ují na odesílacích prvcích (<input type=image|submit|button> , <button> ) a odkazech.
• Explorer ve standardním režimu navíc onclick uje i na <input type=text> .
„Ovšem na <option>ech naopak v některých prohlížečích nejde vyvolat nijak, proto je vážná chyba ho tam používat.“ Tuším, že v Chromu to nešlo. |
||
Časová prodleva: 4 roky
|
|||
BunnyBugs Profil * |
#6 · Zasláno: 9. 8. 2015, 04:29:25
Je to tady sice starší, ale narazil jsem na to, neboť to právě řeším a nevím, jestli jsem to správně pochopil.
Použil jsem variantu od Chamurappi, ale nějak mi to nefunguje. Co na tom mám špatně? <form action=""> <select onchange='document.getElementById("test").style.display = (policko.hodnota == "java") ? "inline" : "none";'> <option>Jedna možnost</option> <option>Druhá možnost</option> <option>java</option> </select> <input type='text' id="test"> </form> |
||
BunnyBugs Profil * |
#7 · Zasláno: 9. 8. 2015, 06:14:59
Pardon, vyřešeno systémem pokus/omyl :P takto:
<form action="" name="formul"> <select onchange='document.getElementById("test").style.display = (value == "JAVA") ? "inline" : "none";'> <option>Jedna možnost</option> <option>Druhá možnost</option> <option>JAVA</option> </select> <input type='text' id="test" style="display: none"> </form> |
||
Časová prodleva: 10 let
|
0