20. februar 2004 - 12:30Der er
6 kommentarer og 1 løsning
Spørgsmål vedr. style.display='block'
Mit problem er, at jeg har nogle div's som bliver skjult eller vist afhængigt af havd brugeren indsætter i min form... På et tidspunkt i mit script bliver jeg nød til at vide, om det givne div er synligt eller ej, for at gøre det, har jeg forsøgt flere fremgangsmåder, ingen af dem virker?? Herunder er de:
if (FormID.DivID.style.display=='block'){ if (FormID.DivID.visibility=='visible'){ if (document.getElementByID(DivID).style.display=='block'){ if (document.getElementByID(DivID).visibility=='visible'){
Mit problem er, at det ikke virker. Herunder er de scripts jeg har lavet til at synliggøre og skjule div's. Jeg bruger en tilsvarende sammenligning i det uden problemer?!?!
function changeState(parent){ // HERUNDER ER DEN I BRUG UDEN PROBLEMER:.. if(document.getElementById(parent).style.display=='none'){ expandEl(parent); } else{ closeEl(parent); } }
function expandEl(parent){ document.getElementById(parent).style.display='block'; return false; }
function closeEl(parent){ document.getElementById(parent).style.display='none'; return false; }
Mine div's bliver skjult og vist vha følgende attributter:
SKJULT DIV:
<div id="blabla" style="display:block"></div>
SYNLIGT DIV:
<div id="blabla1" style="display:none"></div>
Jeg håber i kan hjælpe, da jeg ikke selv kan se hvad der er galt..
Jeg kan godt vise og skjule de forskellige layers. Mit problem er når jeg skal finde ud af om et givent layer er skjult eller vist.. altså når jeg laver sammenligningen:
if(styleobjekt.display == 'block'){ ... }
Det vil den ikke gøre.. Jeg har vedlagt noget lidt mere ordnet kode herunder:
<SCRIPT language="JavaScript"> function validateInput(){ var x=true;
if (konkurrence.selskab_navn.value == 12){ alert('hovsa, der er hul igennem 0');
// ####### Herunder er de metoder jeg har prøvet ####### // if (konkurrence.chooseFirmAndet.style.display =='block'){ // if (konkurrence.chooseFirmAndet.visibility =='visible'){ // if (document.getElementById(chooseFirmAndet).style.display =='block'){ // if (document.getElementById(chooseFirmAndet).visibility =='visible'){
if (konkurrence.chooseFirmAndet.style.display =='block'){ alert('hovsa, der er hul igennem 1'); if (konkurrence.selskab_navnAndet.value.length < 1) { alert('hovsa, der er hul igennem 2'); selskabAndet.style.color="#BD0000"; x = false; }else { selskabAndet.style.color="#000000"; } }else { selskabAndet.style.color="#BD0000"; alert('hovsa, der er hul igennem 3'); changeState('chooseFirm'); changeState('chooseFirmAndet'); changeState('selskab'); changeState('selskabAndet'); x = false; } }else { if (konkurrence.selskab_navn.value == 0){ alert('hovsa, der er hul igennem 4'); selskab.style.color="#BD0000"; x = false; }else { selskab.style.color="#000000"; } }
if (x == false){ alert('Du har ikke besvaret alle spørgsmål på denne side. \nBesvar spørgsmål markeret med rødt og klik igen på "Fortsæt"'); } return x; }
function changeState(parent){
// if (document.getElementById(parent).visibility=='hidden'){ if(document.getElementById(parent).style.display=='none'){ expandEl(parent); } else{ closeEl(parent); }
}
function expandEl(parent){ // document.getElementById(parent).visibility='visible' document.getElementById(parent).style.display='block'; return false; }
function closeEl(parent){ // document.getElementById(parent).style.visibility='hidden' document.getElementById(parent).style.display='none'; return false; }
</SCRIPT>
...bla bla </head><body> bla bla ...
<!-- ################ START PÅ HTML-KODE ################### -->
<tr> <td height="50" width="250" class="brodtxt">
<div id="selskab" style="display:block"> Hvor er du forsikret i dag? </div> <div id="selskabAndet" style="display:none"> Skriv venligst navnet på dit forsikringsselskab her: </div>
De alerts der er i koden er til at finde fejl.. Jeg har konkluderet, at problemet ligger der, hvor jeg vil finde ud af om DIV'et chooseFirmAndet er "block" Jeg har forsøgt adskillige metoder, som det også fremgår af koden, men ingen af dem virker endnu !?
Jeg har lige fået løst det, jeg droppede hele den sammenligning og lavede en global variabel "synlig" som er false som standard og bliver sat til true hvis det lag jeg tjekker for bliver gjort synligt.. :) :)
Jeg rydder lige op og lukker den her, tak for hjælpen :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.