Avatar billede krydset Nybegynder
25. oktober 2005 - 00:33 Der er 5 kommentarer og
1 løsning

style.visibility hidden virker ikke

Hejsa..
hvorfor virker denne kode ikke ?
<script type="text/javascript">
function show() {
    if(getE('offer').value == "no"){
        getE('offerDetail').style.visibility = "hidden";
    } else if(getE('offer').value == "yes"){
        getE('offerDetail').style.visibility = "visible";
    }   
}
</script>

<tr>
            <td>Tilbudsvare:</td>
            <td>
            JA <input type="radio" name="offer" value="yes" onclick="show();"> | NEJ <input type="radio" name="offer" value="no" onclick="show();">
            </td>
        </tr>
       
        <tr>
            <td id="offerDetail" style="visibility:hidden;">tilbud detaljer</td>
        </tr>

Nå jeg trykker i ja så vises offerDetails fint, men når jeg klikker i nej så forsvinder det ikke igen hvorfor det ?
Avatar billede softspot Forsker
25. oktober 2005 - 00:43 #1
Under antagelse af at getE er en funktion som pakker document.getElementById ind, så vil jeg mene flg. kan bruges...


<script type="text/javascript">
function show(obj) {
    if(obj.value == "no"){
        getE('offerDetail').style.visibility = "hidden";
    } else if(obj.value == "yes"){
        getE('offerDetail').style.visibility = "visible";
    }   
}
</script>

<tr>
  <td>Tilbudsvare:</td>
  <td>
    JA <input type="radio" name="offer" value="yes" onclick="show(this);"> | NEJ <input type="radio" name="offer" value="no" onclick="show(this);">
  </td>
</tr>
       
<tr>
  <td id="offerDetail" style="visibility:hidden;">tilbud detaljer</td>
</tr>
Avatar billede roenving Novice
25. oktober 2005 - 06:31 #2
-- og egentlig bør man vel benytte sig direkte af en parameter:

<script type="text/javascript">
function show(act) {
    if(!act){
        getE('offerDetail').style.visibility = "hidden";
    } else if(act){
        getE('offerDetail').style.visibility = "visible";
    }   
}
</script>

JA <input type="radio" name="offer" value="yes" onclick="show(true);"> | NEJ <input type="radio" name="offer" value="no" onclick="show(false);">

-- og så kan det iøvrigt koges ned til:

<script type="text/javascript">
function show(act) {
    getE('offerDetail').style.visibility = act ? "visible" : "hidden";
}
</script>

-- oftest vil en manipulation med display dog have en mere rimelig funktion, og sjældent vil man kun have eet tilfælde af den slags, så der kan laves adskillige forbedringer, hvis den skal være bare en anelse mere generisk og virke til flere forekomster af det samme !-)

-- selv plejer jeg at anbefale at man lægger det ind i det samme element, da man så kan finde elementet uden at kende id'er, eller give elementer id'er, som kæder hoved- og underelementer sammen !o]
Avatar billede krydset Nybegynder
25. oktober 2005 - 08:38 #3
getE('offerDetail').style.visibility = act ? "visible" : "hidden";


forstår ikke den her linie ?
Avatar billede krydset Nybegynder
25. oktober 2005 - 08:41 #4
men roenvig lig et svar.... det virkede fint, på nøær lige den linie jeg ikke forstår, men den kan du ligge en forklaring på hvis du vil
Avatar billede roenving Novice
25. oktober 2005 - 14:09 #5
Den betyder præcis det samme som den anden udgave !-)

Altså er:

    if(!act){
        getE('offerDetail').style.visibility = "hidden";
    } else if(act){
        getE('offerDetail').style.visibility = "visible";
    }   

-- præcis det samme som:

    getE('offerDetail').style.visibility = act ? "visible" : "hidden";

-- og forklaringen er, at det er den 'ternære' operator (som findes i en hel del programmeringssprog !-), som virker sådan:

variabel = betingelse ? "Værdi hvis betingelse er sand" : "Værdi hvis falsk !-);

-- og betingelsen skal så kunne evalueres til sand eller falsk, hvor 0, null, 'undefined' og "" også giver falsk, hvor alle andre værdier giver sand !o]

-- els velbekomme '-)
Avatar billede roenving Novice
25. oktober 2005 - 15:13 #6
-- og tak for point ;~}
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

Forsvarets Efterretningstjeneste

FE søger PKI-specialist

PensionDanmark

Projektleder

TD SYNNEX Denmark ApS

Sales Coordinator