Pampel: Formularhandling

Hallo zusammen,

in einem Formular können an einer Stelle über Radio-Buttons mehrere Möglichkeiten ausgewählt werden.

Möglichkeit 1: o Ich starte.
Möglichkeit 2: o Ich starte nicht.
Möglichkeit 3: o Ich starte erst am ____. (Datum)

Wenn nun in das Feld Datum ein Wert eingetragen wird und der Radio-Button 3 wurde noch nicht ausgewählt, dann soll das automatisch passieren.

Geht das irgendwie?

Danke für Hinweise.

Gruß,

Stefan

  1. Hallo Pampel,

    Möglichkeit 1: o Ich starte.
    Möglichkeit 2: o Ich starte nicht.
    Möglichkeit 3: o Ich starte erst am ____. (Datum)

    Wenn nun in das Feld Datum ein Wert eingetragen wird und der Radio-Button 3 wurde noch nicht ausgewählt, dann soll das automatisch passieren.

    Mit reinem HTML nicht, aber mit Javascript.
    onchange wird dir helfen.

    Denk dran, dass nicht jeder Javascript aktiviert hat und eventuell trotzdem die Möglichkeit 3 nicht ausgewählt ist.

    Viele Grüße aus Freiburg,
    Marian

    --
    Microsoft broke Volkswagen's world record: Volkswagen only made 22 million bugs!
    <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) n4:( ss:) de:] js:| ch:? mo:} zu:)
    1. Hallo Marian.

      onchange wird dir helfen.

      Ich würde hier aber eher zu onfocus und onblur raten, da onchange bei der Auswahl einer der anderen Radioboxen nicht feuert.

      Denk dran, dass nicht jeder Javascript aktiviert hat und eventuell trotzdem die Möglichkeit 3 nicht ausgewählt ist.

      Deshalb sollte serverseitig auch reagiert werden, wenn das Eingabefeld ausgefüllt wurde. Entweder per Meldung oder stillschweigende Annahme, dass die dritte Radiobox aktiviert werden sollte.

      Zudem sollte die disabled-Eigenschaft des Eingabefeldes erst beim Laden gesetzt werden.

      Einen schönen Freitag noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
      [HTML Design Constraints: Logical Markup]
      1. Hallo Ashura,

        Ich würde hier aber eher zu onfocus und onblur raten, da onchange bei der Auswahl einer der anderen Radioboxen nicht feuert.

        aus deiner Formulierung schließe ich, dass du die Problemstellung anders verstanden hast als ich. Der OP wollte den Radiobutton automatisch setzen, wenn etwas in das Textfeld eingegeben wird (daher ist onchange für das Textfeld sinnvoll).
        Du willst dagegen, so wie es aussieht, das Textfeld deaktivieren und erst mit dem Setzen des Radiobuttons wieder aktivieren. Das ist zwar auch eine sinnvolle Herangehensweise, würde aber meiner Intuition beim Ausfüllen eines solchen Formulars widersprechen: Wenn ich ein Textfeld sehe, in das ich einen Termin eintragen soll, dann möchte ich das einfach tun. Dass ich das zugehörige Feld erst auswählen und aktivieren soll, ist zwar logisch, aber nicht intuitiv.

        Übrigens ist dein Vorschlag mit onfocus und onlur auch nur die halbe Miete. Wenn ich mit der Tab-Taste durch die Formularelemente wandere, zündet für jeden der drei Radiobuttons einmal onfocus, dann onblur, obwohl kein Zustand verändert wurde.

        Denk dran, dass nicht jeder Javascript aktiviert hat und eventuell trotzdem die Möglichkeit 3 nicht ausgewählt ist.

        Deshalb sollte serverseitig auch reagiert werden, wenn das Eingabefeld ausgefüllt wurde. Entweder per Meldung oder stillschweigende Annahme, dass die dritte Radiobox aktiviert werden sollte.

        Das wollte ich auch geraten haben. Dumm nur, wenn z.B. der erste Radiobutton aktiviert *und* das Textfeld ausgefüllt ist. Diesen Widerspruch sollte man bedenken.

        Schönen Tag noch,
         Martin

        --
        Okay, Alkohol ist keine Antwort.
        Aber manchmal vergisst man beim Trinken wenigstens die Frage.
      2. Hallo Ashura,

        Denk dran, dass nicht jeder Javascript aktiviert hat und eventuell trotzdem die Möglichkeit 3 nicht ausgewählt ist.

        Deshalb sollte serverseitig auch reagiert werden,

        Das wollte ich damit sagen ;-)

        wenn das Eingabefeld ausgefüllt wurde. Entweder per Meldung oder stillschweigende Annahme, dass die dritte Radiobox aktiviert werden sollte.

        Wenn nix ausgewählt ist, aber was im Textfeld steht, kann man davon ausgehen, dass die dritte Auswahlmöglichkeit gemeint ist; wenn aber der erste oder der zweite ausgewählt ist, sollte der Inhalt des Textfelds ignoriert werden. Kurz: die Radiobuttons haben Priorität.

        Viele Grüße aus Freiburg,
        Marian

        --
        Microsoft broke Volkswagen's world record: Volkswagen only made 22 million bugs!
        <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->
        Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) n4:( ss:) de:] js:| ch:? mo:} zu:)