Avatar billede jegola Nybegynder
29. juli 2006 - 13:06 Der er 5 kommentarer og
1 løsning

Show/hide virker ikke i Firefox

Jeg har et VBScript der tjekker om en checkbox er checked og ud fra den viser/skjuler en <TR> med nogle yderligere tekstbokse der skal udfyldes.

Scriptet virker fint i IE, men ikke i Firefox - har søgt mig lidt frem til at det måske har noget at gøre med "event" funktionen som IE og Firefox ikke opfatter ens, men kan ikke rigtig se, hvordan det skal laves om så det virker...

-----------------------------
Scriptet:

<script language="VBScript" type="text/VBScript">
    function init()
        set brian = document.getElementById("chkHD")
        set benny = document.getElementById("HD")
        if brian.checked = true then
            benny.style.display = "block"
        end if
        set brian = document.getElementById("chkDD")
        set benny = document.getElementById("DD")
        if brian.checked = true then
            benny.style.display = "block"
        end if
        set brian = document.getElementById("chkMD")
        set benny = document.getElementById("MD")
        if brian.checked = true then
            benny.style.display = "block"
        end if
    end function
   
    function chkToggle(who)
        set benny = me.event.srcElement
        set brian = document.getElementById(who)
        if benny.checked = true then
            brian.style.display = "block"
        else
            brian.style.display = "none"
        end if
    end function
</script>
-----------------------------

Checkboksen og <TD>'en der skal vises/skjules:

                <tr bgcolor="#F0F0F0">
                  <td width="125" valign="top">&nbsp;</td>
                  <td ><font face="Verdana">
                    <input name="herredouble" type="checkbox" id="chkHD" value="Herredouble" <%if instr(herredouble,"Herredouble") then Response.Write("checked")%> <%if instr(kategorier,"HD") then Response.Write("") else Response.Write("disabled")%> onClick="chkToggle('HD')">
                    Herredouble</font><font face="Verdana">&nbsp;</font></td>
                </tr>
                <tr bgcolor="#F0F0F0" id="HD" style="DISPLAY: none">
                  <td width="125" valign="top">&nbsp;</td>
                  <td ><font face="Verdana">&nbsp; &nbsp; &nbsp; Makker:
                    <input name="herredoublemakker" type="text" class="textarea" id="herredoublemakker" value="<%=herredoublemakker%>" size="33">
                    </font><font face="Verdana"><span class="smallgrey"><br>
                    </span>&nbsp; &nbsp; &nbsp; <span class="smallgrey">Skriv &quot;X&quot; hvis du ingen makker har, men &oslash;nsker at spille herredouble</span><br>
&nbsp; &nbsp; &nbsp; Makkers klub:
                    <input name="herredoublemakker_klub" type="text" class="textarea" id="herredoublemakker_klub" value="<%=herredoublemakker_klub%>" size="33">
                    </font><font face="Verdana"><span class="smallgrey"><br>
                    </span>&nbsp; &nbsp; &nbsp; </font><font face="Verdana"><span class="smallgrey">Skriv dette hvis makkeren ikke er fra <%=klubnavn%></span></font></td>
                </tr>
Avatar billede erikjacobsen Ekspert
29. juli 2006 - 14:39 #1
Du kan kun afvikle client-side vbscript i IE. Ikke i Firefox. Brug JavaScript i stedet for.
Avatar billede jegola Nybegynder
29. juli 2006 - 18:10 #2
Nu har jeg fået løst den ene del ved at lave onclik funktionen om på checkboksene:
onclick="document.getElementById('HD').style.display=(document.getElementById('HD').style.display == 'none')?'block':'none';"

Men hvordan tjekker jeg med JavaScript ved onLoad om en checkboks er checked og sætter dens tilhørende <TR>'s display til block ligesom "function init()" gjorde før ?

---------
De nye checkbokse:

                    <input name="herredouble" type="checkbox" id="chkHD" value="Herredouble" <%if instr(herredouble,"Herredouble") then Response.Write("checked")%> <%if instr(kategorier,"HD") then Response.Write("") else Response.Write("disabled")%> onclick="document.getElementById('HD').style.display=(document.getElementById('HD').style.display == 'none')?'block':'none';">
                    Herredouble</font><font face="Verdana">&nbsp;</font></td>
                </tr>
                <tr bgcolor="#F0F0F0" id="HD" style="DISPLAY: none">
                  <td width="125" valign="top">&nbsp;</td>
                  <td ><font face="Verdana">&nbsp; &nbsp; &nbsp; Makker:
                    <input name="herredoublemakker" type="text" class="textarea" id="herredoublemakker" value="<%=herredoublemakker%>" size="33">
                    </font><font face="Verdana"><span class="smallgrey"><br>
                    </span>&nbsp; &nbsp; &nbsp; <span class="smallgrey">Skriv &quot;X&quot; hvis du ingen makker har, men &oslash;nsker at spille herredouble</span><br>
&nbsp; &nbsp; &nbsp; Makkers klub:
                    <input name="herredoublemakker_klub" type="text" class="textarea" id="herredoublemakker_klub" value="<%=herredoublemakker_klub%>" size="33">
                    </font><font face="Verdana"><span class="smallgrey"><br>
                    </span>&nbsp; &nbsp; &nbsp; </font><font face="Verdana"><span class="smallgrey">Skriv dette hvis makkeren ikke er fra <%=klubnavn%></span></font></td>
                </tr>
Avatar billede erikjacobsen Ekspert
29. juli 2006 - 21:12 #3
Det skal bare være javascript. Sådan ca (nogle linier)

function init() {
  var brian = document.getElementById("chkHD");
  var benny = document.getElementById("HD");
  if (brian.checked) {
      benny.style.display = "block"
  }
  ....osv
Avatar billede jegola Nybegynder
30. juli 2006 - 00:11 #4
Super.. Lige hvad der skulle til for at det virkede!

Smid et svar erikjacobsen - tak for hjælpen :-)
Avatar billede erikjacobsen Ekspert
30. juli 2006 - 00:21 #5
Jeg samler slet ikke på point, tak.
Avatar billede jegola Nybegynder
30. juli 2006 - 00:56 #6
Ok... Men igen, tak for hjælpen !
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
Kurser inden for grundlæggende programmering

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