Autor | Zpráva | ||
---|---|---|---|
Silencer Profil |
#1 · Zasláno: 23. 6. 2008, 15:52:31
Prosím o pomoc pri disabled.
Mám tento script: <script> function pocetdnizobraz() {document.getElementById("viacako").disabled=false;} function pocetdniskryt() {document.getElementById("viacako").disabled=true;} </script> Ďalej tento kód: <select name="dni" size="1"> <optgroup label="Počet dní"> <option selected value="1 deň" onclick="pocetdniskryt()">1 deň</option> <option value="2 dni" onclick="pocetdniskryt()">2 dni</option> <option value="3 dni" onclick="pocetdniskryt()">3 dni</option> <option value="4 dni" onclick="pocetdniskryt()">4 dni</option> <option value="5 dní" onclick="pocetdniskryt()">5 dní</option> <option value="Viac ako 5 dní" onclick="pocetdnizobraz()">Viac ako 5 dní</option> <optgroup label="Obdobie"> <option value="víkend" onclick="pocetdniskryt()">víkend</option> <option value="týždeň" onclick="pocetdniskryt()">týždeň</option> <option value="mesiac" onclick="pocetdniskryt()">mesiac</option> </select> <input type="text" size="7" maxlength="3" name="presnedni" title="Zadajte presný počet dní" id="viacako" disabled> Efekt je taký, že po zvolení položky Viac ako 5 dní sa aktivuje pole, ktoré je dovtedy zašedené. Funguje to však iba vo FF, v IE to z nevysvetliteľných dôvodov nefunguje. Skúšal som všetky možné varianty, prešiel som celý web jpw.cz, ale nič nepomohlo. |
||
peta Profil |
#2 · Zasláno: 23. 6. 2008, 16:08:38
co pise JS konzola v IE / FF / Opere?
tipl bych si, ze disabled se pise dissabled a nebo ,ze nenabyva true/false, nybrz disabled/(nic) |
||
Bubák Profil |
#3 · Zasláno: 23. 6. 2008, 16:26:47
tipl bych si, ze disabled se pise dissabled a nebo ,ze nenabyva true/false, nybrz disabled/(nic)
špatné tipy http://msdn.microsoft.com/en-us/library/ms533732(VS.85).aspx |
||
Chamurappi Profil |
#4 · Zasláno: 23. 6. 2008, 16:50:04
Reaguji na Silencera:
Nedávno se to tu řešilo, Explorer nepodporuje onclick na <option>ech, nasaď onchange na <select>. |
||
Silencer Profil |
#5 · Zasláno: 23. 6. 2008, 21:08:56
Reagujem na Chamurappi:
Ďakujem, to dávnejšie riešenie mi pomohlo. Ostáva ešte jeden posledný problém a síce ten, že potrebujem pri volaní funkcie zavolať niekoľko premenných: function ukaz(form,meno,ktoreid,hladaj) { if (form.meno.value==hladaj) { document.getElementById(ktoreid).style.display="inline"} else { document.getElementById(ktoreid).style.display="none"} } Select následne volám takto: <select name="dni" size="1" onchange="ukaz(this.form,this.name,'viacako','Viac ako 5 dní')"> A samotné políčko, ktoré sa má alebo nemá zobrazovať: <span id="viacako" style="display:none;"> <input type="text" size="1" maxlength="3" name="presnedni" title="Zadajte presný počet dní"></span> Všetko funguje ako iba vtedy, keď z volaných premenných vyhodím premennú meno. Keď ju nahradím priamo názvom dni, tak je všetko OK. Keďže ja budem ten script volať viac krát, bolo by vhodné to použiť ako premennú. Je to vôbec možné? |
||
los Profil * |
#6 · Zasláno: 23. 6. 2008, 22:02:44
Keď chceš použiť meno ako premennú, tak namiesto prístupu pomocou bodky použiješ hranaté zátvorky:
if (form[meno].value == hladaj) Prípadne to môžeš ešte zjednodušiť tak, že si tam budeš posielať priamo ten select: onchange="ukaz(this,'viacako','Viac ako 5 dní')" Funkcia ukaz by potom vyzerala takto (netestované): function ukaz(select, id, hladaj) { document.getElementById(id).style.display = select.value == hladaj ? "" : "none"; } |
||
Silencer Profil |
#7 · Zasláno: 23. 6. 2008, 22:29:22
Keď chceš použiť meno ako premennú, tak namiesto prístupu pomocou bodky použiješ hranaté zátvorky:
if (form[meno].value == hladaj) los Ďakujem, pomohlo to s tými hranatými zatvorkami. To zjednodušenie však nefunguje, posielajo to nulovú hodnotu (aspoň tak hlási chybu javascript). |
||
Časová prodleva: 16 let
|
0