gondor: Javascript-Problem

Javascript-Problem:

Hallo!

Wie kann ich folgendes Problem lösen:

Ich 'muss' nur dann ein hidden-Feld mit Value = 1 setzen, wenn das Div auf display:inline gesetzt wird:

<div id="row" style="display:none;">
  <input type="hidden" name="test" value="1">
</div>

Wenn display:none ist, dann soll es kein hidden-Feld geben.

Leider funktioniert das noch nicht so, wie ich es gerne hätte. Das hidden-Feld ist ständig gesetzt. Wie kann ich das setzen eines hidden-Feldes über Javascript steuern?

Vllt. habe ich eine Denkblockade? Könnt ihr mir helfen?

Danke,

gondor(..)

  1. Hallo!

    Moin moin!

    Wie kann ich folgendes Problem lösen:

    Ich 'muss' nur dann ein hidden-Feld mit Value = 1 setzen, wenn das Div auf display:inline gesetzt wird:

    <div id="row" style="display:none;">
      <input type="hidden" name="test" value="1">
    </div>

    Wenn display:none ist, dann soll es kein hidden-Feld geben.

    Leider funktioniert das noch nicht so, wie ich es gerne hätte. Das hidden-Feld ist ständig gesetzt. Wie kann ich das setzen eines hidden-Feldes über Javascript steuern?

    Wieso willst Du denn ein bereits verstecktes (unsichtbares) input-Element ausblenden? Das ist doch doppeltgemoppelt. Abgesehen davon ist das input-Element immer vorhanden. Egal ob du den Style vom div-Element auf display:none oder display:inline setzt. Daher hat das input-Element auch immer den Wert 1. Zu dem könnte man den Style des div-Elements auch beim input-Element angeben, um dann doch vielleicht evtl. Darstellungsprobleme zu vermeiden, und das div weglassen.

    Den Wert vom input-Element kannst du per JS so ändern:

    document.getElemenById("test").value = DeinWert

    Gruß,
    Jan

  2. <div id="row" style="display:none;">
      <input type="hidden" name="test" value="1">
    </div>

    Wenn display:none ist, dann soll es kein hidden-Feld geben.

    Das style hat nichts mit der Funktionalität des Fomrularelements zu tun.

    Leider funktioniert das noch nicht so, wie ich es gerne hätte. Das hidden-Feld ist ständig gesetzt. Wie kann ich das setzen eines hidden-Feldes über Javascript steuern?

    Was meinst du mit setzen?
    Du kannst mit JS den Elementen Werte übergeben, wenn du ein neues element erzeugen willst nimm document.createElement(), zum entfernen gibt es dann entsprechend  removeChild()

    Es ist aber nicht klar was du eigentlich wirklich willst.

    Struppi.

    --
    Javascript ist toll (Perl auch!)
  3. Hallo,

    Ich 'muss' nur dann ein hidden-Feld mit Value = 1 setzen, wenn das Div auf display:inline gesetzt wird:

    wenn dein div _nicht_ inline ist, soll dann das hidden-Feld ganz wegfallen, oder genügt es, sein value z.B. auf 0 zu setzen?

    <div id="row" style="display:none;">
      <input type="hidden" name="test" value="1">
    </div>
    Wenn display:none ist, dann soll es kein hidden-Feld geben.

    Du könntest im onsubmit-Handler die display-Eigenschaft des div-Elements abfragen und ggf. "name" des input-Elements auf "" setzen - dann wird es beim Absenden des Formulars nicht mehr übertragen.

    So long,
     Martin

    --
    Zum Glück ist alles nur halb so doppelt.
  4. hi,

    Ich 'muss' nur dann ein hidden-Feld mit Value = 1 setzen, wenn das Div auf display:inline gesetzt wird:

    Dass das Unfug ist, wurde bereits gesagt.

    Es genügt vollkommen, wenn du für das versteckte Feld die Eigenschaft disabled dynamisch setzt - dann wird sein Wert auch nicht beim Abschicken des Formulars übermittelt.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }