Toon posts:

Javascript visible = object

Pagina: 1
Acties:

Verwijderd

Topicstarter
Goede dag allemaal.
Ik heb een probleempje. Ik heb 2 radiobuttons en 2 labels. Beide labels staan in design op Visible = False
code:
1
2
3
4
5
<input value="Nee" name="RadioGroup" id="RadioButtonNee" type="radio" 
onclick="Labels_Visible()" checked="checked" />Nee

<input value="JA" name="RadioGroup" id="RadioButtonJa" type="radio" 
onclick="Labels_Visible()" />Ja
De functie die wordt aangeroepen bij het wijzigen van de RadioButtonJa is het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
<script type="text/javascript">
    <!--
        function Labels_Visible(){
            var editor = igedit_getById("label1");
            var label = igedit_getById("label2");   
            var radioYes = document.getElementById('RadioButtonJa');

            editor.setVisible(radioYes.checked);
            label.setVisible(radioYes.checked);
        }
    -->
</script>
Maar helaas krijg ik deze foutmelding als ik de radiobutton wijzig op de pagina.
Runtime-fout Microsoft JScript: 'null' is leeg of geen object

In de broncode kan ik nergens die 2 labels terugvinden.
Dus kan ik begrijpen dat er iets fout gaat.
Het gaat wel goed als ik de labels op Visible = True zet.
Maar ze moeten onzichtbaar zijn tijdens het laden van de pagina.

Maar mijn vraag is nu hoe zou ik dit probleem op kunnen lossen.
p.s. Ik werk in ASP.NET en maak gebruik van infragistics.

B.V.D. helper in nood!

[ Voor 10% gewijzigd door Verwijderd op 22-12-2005 10:04 ]


Verwijderd

In de broncode kan ik nergens die 2 labels terugvinden.
Dus kan ik begrijpen dat er iets fout gaat.
Het gaat wel goed als ik de labels op Visible = True zet.
Maar ze moeten onzichtbaar zijn tijdens het laden van de pagina.
Doordat de labels in de designer op false staan, worden ze niet meegestuurd, logisch. Op deze manier gaat het niet lukken, je zou het op jouw manier server side moeten oplossen; d.w.z. door een postback de pagina laten herladen. In HTML is er geen tag voor visible... Vandaar dat het niet werkt met javascript.

Je zou het met een div kunnen doen (denk ik) waarvan je de grootte oid verandert, maar hier zijn vast wel oplossingen voor te vinden.

Verwijderd

Topicstarter
Bedankt voor je snelle reactie. _/-\o_
Ik ben bezig met een project en ik mag geen postbacks en divs gebruiken. :'( Dat is hier helaas de regel.
Maar is er geen mogelijkheid om via javascript de layout te wijzigen van een label?

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 20-04 19:00

MBV

Je kan toch in 'onload' de functies aanroepen om ze onzichtbaar te maken?

Verwijderd

MBV schreef op donderdag 22 december 2005 @ 10:17:
Je kan toch in 'onload' de functies aanroepen om ze onzichtbaar te maken?
Hoe wilde je dat doen? Mijns inziens is dit niet mogelijk... Je kunt wellicht de size op 0 zetten oid, maar daar heb ik geen verstand van.
Verwijderd schreef op donderdag 22 december 2005 @ 10:12:
Bedankt voor je snelle reactie. _/-\o_
Ik ben bezig met een project en ik mag geen postbacks en divs gebruiken. :'( Dat is hier helaas de regel.
Maar is er geen mogelijkheid om via javascript de layout te wijzigen van een label?
Graag gedaan :) Zoals hierboven gezegd, wellicht via de size van een label... Google hier eens op, er zijn vast wel meer mensen die dit gedaan hebben :)

[ Voor 45% gewijzigd door Verwijderd op 22-12-2005 10:31 ]


  • pistole
  • Registratie: Juli 2000
  • Laatst online: 20:42

pistole

Frutter

Verwijderd schreef op donderdag 22 december 2005 @ 10:30:
[...]

Hoe wilde je dat doen? Mijns inziens is dit niet mogelijk... Je kunt wellicht de size op 0 zetten oid, maar daar heb ik geen verstand van.
Je kan natuurlijk extra style attributen toevoegen aan het object.. Daarmee kan je ze wel hidden krijgen hoor (css dus)

Ik frut, dus ik epibreer


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 20-04 19:00

MBV

volgens het W3C kan je display='none' zetten met CSS, wat dus ook mogelijk is met JS. Dan wordt er geen blok gegenereerd, waardoor het eruit ziet alsof de HTML er niet staat.
Ook kan je visibility='hidden' instellen, zodat het object onzichtbaar is, maar wél in de flow staat.
W3C CCS2 spec: http://www.w3.org/TR/CSS21/visuren.html#display-prop

De TS heeft zelfs JS code die het doet in zijn topic start staan. Alleen weet ik niet of .isVisible=false ook werkt in Firefox, laatste tijd zelf niks mee gedaan :)

  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 19-12-2025

wizzkizz

smile...tomorrow will be worse

Verwijderd schreef op donderdag 22 december 2005 @ 10:30:
Hoe wilde je dat doen? Mijns inziens is dit niet mogelijk... Je kunt wellicht de size op 0 zetten oid, maar daar heb ik geen verstand van.
Zeker kan dit wel. Bijvoorbeeld zo:
code:
1
document.getElementById( "ID_HIER" ).style.display = "none";


Om het dan weer zichtbaar te maken, gebruik je
code:
1
document.getElementById( "ID_HIER" ).style.display = "";

of
code:
1
document.getElementById( "ID_HIER" ).style.display = "block";

(of je geeft als waarde een van de andere mogelijkheden op).

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


  • pistole
  • Registratie: Juli 2000
  • Laatst online: 20:42

pistole

Frutter

en in .net:

[object].Attributes.Add("style", "display:none;")

(bijvoorbeeld)

Ik frut, dus ik epibreer


Verwijderd

Topicstarter
MBV schreef op donderdag 22 december 2005 @ 10:17:
Je kan toch in 'onload' de functies aanroepen om ze onzichtbaar te maken?
Dit werkt niet.
code:
1
2
3
4
5
6
7
8
9
10
<script type="text/javascript">
    <!--
        function Hide_Klantnummer(){
            var editor = igedit_getById("KlantNummer");
            var label = igedit_getById("KlantNummerLabel");
            
            editor.setVisible(false);
            label.setVisible(false);
        }
    -->


En bij Verderbutton zet ik dit neer: "Onload="Hide_Klantnummer()"

Ik krijg dan de volgenden foutmelding:
code:
1
2
3
4
5
6
7
Compilatiefout
Foutbericht van compiler: BC30456: Hide_KlantNummer is geen lid van ASP.Bestelpagina_aspx
Regel 180:                  <TD style="WIDTH: 198px; HEIGHT: 8px">
Regel 181:                      <P align="right"><BR>
Regel 182:                          <asp:button id="VerderButton" runat="server" Text="Volgend (stap 2)" OnLoad="Hide_KlantNummer()"></asp:button><BR>
Regel 183:                      </P>
Regel 184:                  </TD>

:'(

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 17-04 11:22

TeeDee

CQB 241

Verwijderd schreef op donderdag 22 december 2005 @ 12:00:
[...]
En bij Verderbutton zet ik dit neer: "Onload="Hide_Klantnummer()"

Ik krijg dan de volgenden foutmelding:
code:
1
2
3
4
5
6
7
Compilatiefout
Foutbericht van compiler: BC30456: Hide_KlantNummer is geen lid van ASP.Bestelpagina_aspx
Regel 180:                  <TD style="WIDTH: 198px; HEIGHT: 8px">
Regel 181:                      <P align="right"><BR>
Regel 182:                          <asp:button id="VerderButton" runat="server" Text="Volgend (stap 2)" OnLoad="Hide_KlantNummer()"></asp:button><BR>
Regel 183:                      </P>
Regel 184:                  </TD>

:'(
De Onload in je .net control is heel wat anders dan de onload in de body van je HTML. Check ook even de suggestie van pistole.

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
Allemaal bedankt voor jullie hulp.Het probleem is voor mij opgelost.

Hieronder de oplossing:

Onload in de body zetten en de functie aanroepen die ik gebruik (Hide_Klantnummer) en het werkt perfect.

_/-\o_ _/-\o_ _/-\o_

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Verwijderd schreef op donderdag 22 december 2005 @ 12:36:
Allemaal bedankt voor jullie hulp.Het probleem is voor mij opgelost.
Volgende keer toch iets beter zoeken, want dit is op de eerst de beste JS tutorial site te vinden :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.

Pagina: 1