Avatar billede curriculum Nybegynder
12. april 2006 - 16:17 Der er 16 kommentarer

div show/hide problem

Jeg har en form med et antal tekstfelter, samt en div med nogle ekstra tekstfelter i, som skal være skjult ved load, men skal kunne vises via et checkbox click... Mit problem er at div'en ligger midt i formen, og når jeg lave div'en synlig, så lægger den sig over de nedenfor tekstfelter. Jeg vil at de nedfor tekstfelter rykker længere ned, når div'en vises.

Hvordan laves dette ?
Avatar billede arriva Nybegynder
12. april 2006 - 20:39 #1
Prøv at smide dem i en tabel.
Avatar billede curriculum Nybegynder
12. april 2006 - 22:04 #2
Det har jeg allerede gjort...
Siden ligger her: http://www.gjogvadventure.fo/default.aspx?gid=d6F6AEA56-37D4-46FC-9B23-11CEA7172912

det er problemet med "Want accomodation ?" checkboxen og felterne nedenfor...
Avatar billede arriva Nybegynder
12. april 2006 - 22:16 #3
Så forstår jeg ikke hvad du mener. Hos mig udvider siden sig bare ved at "GO" rykker ned og 2 nye felter kommer frem?
Avatar billede mclemens Nybegynder
13. april 2006 - 03:13 #4
<div id="accregform">
->
<div id="accregform" style="position:absolute;visibility:hidden;">
Avatar billede roenving Novice
13. april 2006 - 18:46 #5
>>mclemens

-- det ser mærkeligt ud, når man kigger på spørgerens problem ...

-- en mulig løsning er f.eks.

Angiv leveringsadresse: <input type="checbox" onclick="document.getElementById('levAddr').style.display=this.checked?'block':'none'">
<div id="levAddr" style="dislay:none;">
  Adresse1: <input type="text" name="levAddr1"><br>
  Adresse2: <input type="text" name="levAddr2"><br>
  Postnr. og -by: <input type="text" name="levZipCity">
</div>
Avatar billede roenving Novice
13. april 2006 - 18:48 #6
Hrm, tavetossernes paradis ,-(

Angiv leveringsadresse: <input type="checkbox" onclick="document.getElementById('levAddr').style.display=this.checked?'block':'none'">
<div id="levAddr" style="display:none;">
...
Avatar billede mclemens Nybegynder
13. april 2006 - 18:56 #7
roenving, problemet er løst på siden...
- der er i forvejen en sådan funktion tilknyttet sitet den ser sådan her ud:

function changeAccomodation(targetid,loading){
    if (document.getElementById(targetid).style.visibility == 'visible'){
        document.getElementById(targetid).style.position = 'absolute';
        document.getElementById(targetid).style.visibility = 'hidden';
    } else {
        document.getElementById(targetid).style.position = '';
        document.getElementById(targetid).style.visibility = 'visible';
    }
}

->

function changeAccomodation(targetid,loading){
tmpnode=document.getElementById(targetid);
    if (tmpnode.style.visibility == 'visible'){
        tmpnode.style.position = 'absolute';
        tmpnode.style.visibility = 'hidden';
    } else {
        tmpnode.style.position = 'relative';
        tmpnode.style.visibility = 'visible';
    }
}

Problemet er at når man kommer ind på siden fra start af er <div id="accregform">
ikke placeret som absolute fra start af før man har være igennem funktionen en gang... derfor det ekstra style tag til div'en som jeg skrev
Avatar billede mclemens Nybegynder
13. april 2006 - 18:57 #8
roenving, problemet er løst på siden...
-> roenving, problemet med at skjule
og vise felterne er løst på siden...
Avatar billede mclemens Nybegynder
13. april 2006 - 19:02 #9
hmm, ved egentlig ikke hvad den loading variabel
laver i det script ved nærmere eftertanke???
Avatar billede roenving Novice
13. april 2006 - 19:04 #10
-- det er vel noget vrøvl at bruge absolut positionering, hvis man netop skal rykke andre elementer ?-)
Avatar billede mclemens Nybegynder
13. april 2006 - 19:05 #11
... ja, så skal man jo skifte mellem display:none; og block;
- men det var jo en rettelse og ikke et nyt script ...
Avatar billede mclemens Nybegynder
13. april 2006 - 19:10 #12
JScript.js: (scriptet i bunden erstattes af dette)

function changeAccomodation(targetid){
tmpnode=document.getElementById(targetid);
tmpnode.style.display=(tmpnode.style.display=='none')?"block":"none";
}


og i html filen:

<input name="ctl00$cphMiddle$Booking1$cbAccomodation" id="ctl00_cphMiddle_Booking1_cbAccomodation" onclick="changeAccomodation('accregform');" type="checkbox">Want accomodation ?

...

            <div id="accregform" style="display:none;">
Avatar billede mclemens Nybegynder
13. april 2006 - 19:12 #13
Så, nu er der da to valgmuligheder :)
Avatar billede mclemens Nybegynder
13. april 2006 - 19:23 #14
edit: det sidste virkede ikke :/
http://www.eksperten.dk/spm/702438#rid6206433
virker... men der er åbenbart noget andet der
er afhængig af scriptets opbygning p.t.
Avatar billede mclemens Nybegynder
13. april 2006 - 19:34 #15
brug evt. løsningen i svaret 3 højere oppe sammen med denne div istedet
- der er åbenbart et script der skjuler / viser formular felter baseret på visibility af id's

<div id="accregform" style="visibility:visible;display:none;">
Avatar billede curriculum Nybegynder
13. april 2006 - 19:36 #16
Jeg kigger på problemet så snart jeg har tid...
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB