Javascript bei onLoad und Formelsprache

  • bei "onLoad" in einer Maske soll ein Javascript-Kommando stehen.


    SwitchMenu('sub101');


    Der Parameter ist jedoch abhängig von einem bestimmten Feld in dem Dokument. Von der Idee her würde ich es als String so aufbauen:


    "SwitchMenu('" + Feld + "');"


    Wie baue ich das nun so zusammen, daß das als Javascript funktioniert ?


    Gruß


    Uwe

  • Morgen!


    Wenn der Inhalt in einem Feld steht, dann sollte es so eigentlich gehen:


    SwitchMenu(document.NameFormular.NameFeld.value);

  • Hallo,


    schau dir mal den Quelltext der HTML-Seite an.
    Dort gibt es eine Zeile mit <form name="irgendwas">.
    Das ist der Formularname.
    Alternativ kannst Du auch über:


    document.forms[0].NameFeld.value


    auf das erste Formular deiner Web-Seite zugreifen.


    Gruß,
    Gerd

  • Wenn du dir nicht sicher bist wie dein Formular heißt, dann kannst du auch mit
    this.form.Feldname.value auf den Inhalt zugreifen.


    Das this bezieht sich auf das Formular in dem du dich gerade befindest.

  • Danke für die Antworten, hört sich gut an. Aber wenn ich es einsetze, passiert nichts beim Laden der Seite. Der Quelltext sieht an der Stelle so aus:


    <body onload="SwitchMenu(this.form.menuNr.value);">


    "menuNr" ist das Feld, wo der Parameter drinsteht. Wenn ich das mit "document.forms[0].menuNr.value" mache sieht es entsprechend genau so aus. Muß ich vielleicht noch eine Typumwandlung des Variableninhalts machen ?


    Gruß
    Uwe

  • Ich hab es gelöst:


    SwitchMenu(document.forms[0].menuNr.value); ->geht
    SwitchMenu(this.form.menuNr.value); -> geht generell nicht (????)



    Entscheidend ist aber, daß "HTML für alle Felder generieren" aktiviert ist. Das ist allerdings auch ärgerlich, da natürlich im Quelltext alle Feldinhalte sichtbar sind, auch die, die eigentlich nicht für die Allgemeinheit gedacht sind (gruselig).


    Vielen Dank für Eure Hilfe !!!!

  • Ist das Feld auf das du zugreifen willst etwa berechnet ?
    Normalerweise wird nur HTML für editierbare Felder generiert.
    Brauchst du ein berechnetes auch als HTML, dann musst du das halt direkt HTML-mäßig codieren

  • Sagen wir so, es ist ein Feld in einer Maske, die vom User per Notesclient ausgefüllt wird, aber im Web nur Lesezugriff hat.


    Wenn ich ihm das "onLoad"-Event irgendwie serverseitig schon per Formelsprache unterjubeln könnte, dann würde die Rendering Engine des Servers das schon erledigen und ich bräuchte nicht alle Felder im Quelltext anzeigen ....

  • Hallo,


    wie Taurec schon sagte, wenn Du vermeiden willst, dass alle Felder im Quelltext angezeigt werden, musst Du die benötigten Felder "HTML-mäßig" eincoden.


    Dies schaut dann ungefähr so aus:


    <input type="hidden" name="NameDesFeldes" value="BerechneterWertMitFormelFeldname">


    Auf der Maske musst Du das entweder als Durchgangs-HTML einstellen oder in Eckige Klammern setzen, sodass es Notes direkt weiterreicht und nicht erst in HTML umwandelt.


    Gruß,
    Gerd

  • jo, das ist super. Ich habe das mit "HTML für alle Felder generieren" wieder rausgenommen und nur das eine per


    <input type="hidden" name="menuNr" value="<Berechneter Wert>"> (wobei berechneter Wert "menuNr" ist)


    wieder reingemacht. Geht perfekt.


    Vielen Dank für Eure Hilfe ........ :strike: