14. februar 2005 - 20:27
Der er
14 kommentarer og 1 løsning
Skjul/vis layer ved hjælp af JavaScript!
Hej, Jeg har et lille problem! Jeg har en dropdown-box, det jeg så ønsker er: Hvis "Andet" vælges så skal feltet nedenunder blive synligt. I det øjeblik man så vælger noget andet end "Andet" skal laget blive skjult igen! Hvad gør jeg galt, eller er det ikke muligt? --- UDDRAG AF KODE --- <tr> <td><p class="text"><b>Hovedinstrument: </b></p></td> <td> <select class="stdipbut" style="width: 300px;"> <option onclick="hide(\'prim_andet\')">Klaver</option> <option onclick="hide(\'prim_andet\')">Guitar</option> <option onclick="hide(\'prim_andet\')">El-Guitar</option> <option onclick="hide(\'prim_andet\')">Bas</option> <option onclick="hide(\'prim_andet\')">El-Bas</option> <option onclick="hide(\'prim_andet\')">Violin</option> <option onclick="hide(\'prim_andet\')">Tuba</option> <option onclick="hide(\'prim_andet\')">Saxofon</option> <option onclick="hide(\'prim_andet\')">Klarinet</option> <option onclick="hide(\'prim_andet\')"></option> <option onclick="show(\'prim_andet\')">Andet</option> </select> </td> </tr> <tr> <td><p class="text"><b> - Hvis andet: </b></p></td> <td><div id="prim_andet"><input type="text" name="prim_instrument_andet" class="stdipbut" style="width: 300px;"></div></td> </tr> --- UDDRAG -- SLUT --- Script: <script type="text/javascript"> function show(layer_id) { if (document.layers) document.layers[layer_id].visibility='show'; else if (document.all) document.all[layer_id].style.visibility='visible'; else document.getElementById(layer_id).style.visibility='visible'; } function hide(layer_id) { if (document.layers) document.layers[layer_id].visibility='hide'; else if (document.all) document.all[layer_id].style.visibility='hidden'; else document.getElementById(layer_id).style.visibility='hidden'; } </script> CSS: #prim_andet { position:relative; visibility:hidden; }
Annonceindlæg fra Infor
14. februar 2005 - 20:34
#1
utestet men noget lignende: <select class="stdipbut" style="width: 300px;" onChange='if(this.value=="andet"){show("prim_andet")}else{hide("prim_andet"}'> <option value='Klaver'>Klaver</option> <option value='Guitar'>Guitar</option> <option value='El-Guitar'>El-Guitar</option> <option value='Bas'>Bas</option> <option value='Elbas'>El-Bas</option> <option value='Violin'>Violin</option> <option value='Tuba'>Tuba</option> <option value='Saxofon'>Saxofon</option> <option value='Klarinet'>Klarinet</option> <option value=''></option> <option value='Andet'>Andet</option> </select>
14. februar 2005 - 20:35
#2
<tr> <td><p class="text"><b>Hovedinstrument: </b></p></td> <td> <select class="stdipbut" style="width: 300px;" onchange="vis(this,'trAndet');"> <option>Klaver</option> <option>Guitar</option> <option>El-Guitar</option> <option>Bas</option> <option>El-Bas</option> <option>Violin</option> <option>Tuba</option> <option>Saxofon</option> <option>Klarinet</option> <option></option> <option>Andet</option> </select> </td> </tr> <tr id="trAndet" style="display:none;"> <td><p class="text"><b> - Hvis andet: </b></p></td> <td><div id="prim_andet"><input type="text" name="prim_instrument_andet" class="stdipbut" style="width: 300px;"></div></td> </tr> <script type="text/javascript"> function vis(elm,id){ var st = document.getElementById(id).style st.display=(elm.selectedIndex==10&&st.display!="block")?"block":"none"; } </script>
14. februar 2005 - 20:38
#3
-- og som du ser, har jeg lavet mit forslag udfra den antagelse, at du egentlig slet ikke ville have vist noget, hvis ikke man specielt havde valgt denne !-) -- og document.layers er en NN4-ting, document.all vil enable funktionen i IE4 og ældre Operaer, mens getElementById er en DOM-binding fra ca. 1998, så den burde klare alle nutidige browsere !o]
14. februar 2005 - 20:51
#4
roenving, smid lige et svar! -> det virkede... :) elskermad.dk -> det virkede desværre ikke!
14. februar 2005 - 20:54
#5
Velbekomme '-)
14. februar 2005 - 20:54
#6
-- og hov, 200 point er alt for mange, behold selv mindst halvdelen !-)
14. februar 2005 - 21:00
#7
JA det kunne jeg! Men det var meget vigtigt for mig at få et hurtigt og korrekt svar! Det fik jeg! Tusind tak for det!
14. februar 2005 - 21:01
#8
Jamen, så tak for point ;~}
14. februar 2005 - 21:02
#9
Det er mig der takker! ...og så er det lukke tid!
14. februar 2005 - 21:28
#10
roenving... fandt lige ud af at den ikke virkede... eller skal man sige at jeg havde lavet en fejl! Jeg skrev ikke noget 'value=""' i koden, og når jeg tilføjer det, så virker det ikke længere! :S kan du hjælpe mig?
14. februar 2005 - 21:33
#11
Argh... jeg er alt for hurtig! Det var ikke problemet! Derimod er problemet at jeg ikke kan tilføje yderligere "options"? Kan det passe? Når der kommer mere end 11 går det galt.., hvad kan det skyldes?
14. februar 2005 - 21:33
#12
-- det skulle ikke spille nogen trille, men jeg har jo været nødt til at hardcode selectedIndex af den grund !-) -- så hvis du har ændret på antallet af options, vil det give 'sjove' resultater, hvis du ikke synkroniserer ...
14. februar 2005 - 21:34
#13
Options er nummereret fra 0 og opad, så da du havde 11 options, havde den sidste nummer 10 !-)
14. februar 2005 - 21:35
#14
Super tak for hjælpen!! Nu virker det igen, er glad for din hurtige og effektive respons!
Vi tilbyder markedets bedste kurser inden for webudvikling