Autor Zpráva
dako
Profil
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
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
vdaka, a mohol by si mi to prosimta podrobnejsie rozpisat zvlast aj ten JS, lebo s JS len zacinam...
Chamurappi
Profil
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";
Konstrukce 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
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.
BunnyBugs
Profil *
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 *
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>

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0