Avatar billede phpbegynder2004 Nybegynder
20. december 2006 - 13:24 Der er 8 kommentarer og
1 løsning

Show ved default i show/hide script

Hej,

jeg har et show/hide script der virker således, at når en checkbox bliver afkrydset bliver et div layer synligt.

Div layeret er altså skjult by default og bliver aktiveret/vist, når checkboxen bliver afkrydset. Jeg vil dog gerne have det sådan, at div layeret er vist og først bliver skjult når man unchecker checkboxen.

Har jeg gjort mig forståelig? Ellers bare spørg!

Script:
    <script type="text/javascript">
    //<![CDATA[
    function toggleSubmit(chkbox)
    {
      var textarea = document.getElementById('mit_divlayer');
      textarea.style.display = (chkbox.checked) ? 'block' : 'none';
    }
    //]]>
    </script>

<input name="min_checkbox" type="checkbox" checked VALUE="ON" onclick="toggleSubmit(this);"/>

<div id=\"mit_divlayer\" style=\"display:none;\">

Jeg skal være vist og først skjules når checkboxen bliver unchecket!

</div>
Avatar billede olebole Juniormester
20. december 2006 - 14:11 #1
<ole>

1) Hvad laver dine udkommenterede CDATA-escapes i koden?
2) Hvis du skriver XHTML, må du naturligvis ikke bruge HTML-DOM, men skal bruge XML-DOM

    <script type="text/javascript">
    function toggleSubmit(chkbox)
    {
      var textarea = document.getElementById('mit_divlayer');
      textarea.style.display = (chkbox.getAttribute("checked")) ? "none" : "block";
    }
    </script>

/mvh
</bole>
Avatar billede olebole Juniormester
20. december 2006 - 14:11 #2
- og så skal dit div bare se sådan ud:
    <div id="mit_divlayer">
Avatar billede phpbegynder2004 Nybegynder
20. december 2006 - 15:05 #3
Jeg kunne desværre ikke få det til at virke :(

Ændrede dog checkboxlinien, og nu virker det som det skal:
<div id="mit_divlayer" style="display:block;">

Laver det i php så kan bare sige
if($somerow==etellerandet){
$display = 'block';
$check= 'checked';
}else{
$display = 'none';
$check= '';
}

<input name="min_checkbox" type="checkbox" '.$checked.' VALUE="ON" onclick="toggleSubmit(this);"/>

<div id="mit_divlayer" style="display:'.$display.';">

Dum løsning?
Avatar billede olebole Juniormester
20. december 2006 - 15:28 #4
Ja, det ville jeg da mene  =)

Dels lavede jeg en fejl i funktionen (byttede om på 'none' og 'block') - og dels introducerer FF en fejl, fordi den ikke understøtter XML-DOM - og dermed heller ikke XHTML (og den understøtter i virkeligheden heller ikke engang HTML-DOM)  :o|
Sådan er du nødt til at skrive i stedet:

    function toggleSubmit(chkbox)
    {
      var textarea = document.getElementById('mit_divlayer');
      textarea.style.display = (chkbox.checked) ? "block" : "none";
    }
Avatar billede phpbegynder2004 Nybegynder
23. december 2006 - 18:11 #5
Tak for hjælpen. Læg et svar!
Avatar billede phpbegynder2004 Nybegynder
24. januar 2007 - 20:46 #6
Hej olebole,

Det er vist snart ved at være lukketid. Hvis du vil have nogle point er du meget velkommen til at lægge et svar, ellers snupper jeg dem bare selv :)
Avatar billede roenving Novice
24. januar 2007 - 20:49 #7
-- og ole klager ofte over, at han ingen mails får, så vi kan da prøve at provokere systemet med en ekstra post !-)
Avatar billede olebole Juniormester
25. januar 2007 - 14:57 #8
Denne gang skete der i hvertfald noget  =)
Avatar billede olebole Juniormester
01. september 2007 - 17:22 #9
Tak for points  :)
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