| 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í Tabem (když je element otabindexovaný) 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ě. Onclickují na odesílacích prvcích (<input type=image|submit|button>, <button>) a odkazech.
• Explorer ve standardním režimu navíc onclickuje 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