Sebastian: Problem mit confirm und Radio-Button

Vor dem Absenden eines Formulars werden nochmals alle Daten mithilfe von  return confirm() aufgelistet (sprich Name, Email usw). Außerdem gibt es in dem Formular den Punkt "Newsletter empfangen?", bei dem man mitthilfe eines Radio-Buttons zwischen "ja" und "nein" wählen kann. Beim Auflisten steht an der Stelle dann aber nicht mehr "ja" oder "nein", sondern undefined.
Was mache ich falsch? Den beiden Radio-Buttons habe ich die entsprechenden values "ja" und "nein" gegeben, daran kanns nicht liegen. Oder ist es generell unmöglich, die Auswahl eines Radio-Buttons mit return confirm() aufzulisten?

Danke im Voraus!

  1. Moin!

    Was mache ich falsch? Den beiden Radio-Buttons habe ich die entsprechenden values "ja" und "nein" gegeben, daran kanns nicht liegen. Oder ist es generell unmöglich, die Auswahl eines Radio-Buttons mit return confirm() aufzulisten?

    Radiobuttons sind checked - zumindest derjenige, der gewählt wurde. Der Value hilft dir in diesem Fall dann recht wenig.

    Außerdem bilden Radiobuttons, da ja mehrere identische Namen haben, automatisch ein Array bei den Formular-"elements".

    Wie du dann die Information dem User zugänglich machst, ist absolut irrelevant.

    Ich empfehle dir, mal die relevante Sektion in SELFHTML zu lesen: http://de.selfhtml.org/javascript/objekte/elements.htm

    - Sven Rautenberg

    --
    My sssignature, my preciousssss!
    1. So ganz versteh ich's noch nicht. Kann ich dem benutzer nun den Wert ("ja" oder "nein") anzeigen lassen oder nicht?

      Hier mal der betreffende Ausschnitt aus dem "return confirm()":
      return confirm('Bitte überprüfe nochmals:\nNewsletter erhalten: '+phpform.Newsletter_erhalten.value+'')

      Und hier die beiden Radio-Buttons:
      <input type="radio" name="Newsletter_erhalten" value="ja" checked><br>
      <input type="radio" name="Newsletter_erhalten" value="nein">

      1. hi,

        So ganz versteh ich's noch nicht. Kann ich dem benutzer nun den Wert ("ja" oder "nein") anzeigen lassen oder nicht?

        Was hast du an dem Hinweis, dass bei Radiobuttons, wenn man sie per JS auswerten will, vor allem die checked-Eigenschaft von Interesse ist, nicht verstanden?

        gruß,
        wahsaga

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

        So ganz versteh ich's noch nicht. Kann ich dem benutzer nun den Wert ("ja" oder "nein") anzeigen lassen oder nicht?

        Wenn du es richtig machst, geht es natürlich. Aber es ist nicht so einfach, wie du denkst.

        Zunächst mal:

          
        
        > return confirm('Bitte überprüfe nochmals:\nNewsletter erhalten: '+phpform.Newsletter_erhalten.value+'')  
        
        

        Dein Formular enthält ZWEI Formularelemente mit dem Namen "Newsletter_erhalten". Deshalb existiert nicht nur ein simples "phpform.Newsletter_erhalten", sondern an dieser Stelle existiert ein Array, welches alle beiden Formularelemente dieses Namens ansteuern kann. Das Array beginnt bei 0, die Reihenfolge orientiert sich an der Reihenfolge im HTML-Quelltext.

        Mit anderen Worten: Du hast "phpform.Newsletter_erhalten[0]" und "phpform.Newsletter_erhalten[1]".

        Jedes dieser zwei Elemente enthält eine Eigenschaft "checked", welche dir angibt, ob der Radiobutton gedrückt wurde, und außerdem eine Eigenschaft "value", welche dir den Value-Wert des Radiobuttons angibt.

        Um herauszufinden, welcher Value an dein PHP-Skript übermittelt wird, mußt du sämtliche (in diesem Fall nur die existierenden zwei) Radiobuttons desselben Namens darauf prüfen, ob ihre "checked"-Eigenschaft true ist. Bei dem Button, wo das der Fall ist, kannst du dann die Value-Eigenschaft ausgeben lassen, denn genau diese wird auch an PHP geliefert.

        Wesentlich einfacher wäre es übrigens, wenn du statt der Radiobuttons eine einfache Checkbox verwenden würdest. :) Und es ergibt aus Sicht des Anwenders auch viel mehr Sinn, denn eine Checkbox ist exakt das zu verwendende Bedienelement, wenn es darum geht, einen binären Zustand "an/aus" bzw. "ja/nein" eingeben zu lassen. Radiobuttons sind dann anzuwenden, wenn es mehr als zwei Zustände gibt, von denen sich der Benutzer exakt EINEN aussuchen kann, also beispielsweise "ja/nein/weiß nicht" (was für die Bestellung eines Newsletters natürlich absolut sinnlos wäre ;) ).

        - Sven Rautenberg

        --
        My sssignature, my preciousssss!
  2. hi,

    Was mache ich falsch?

    das sagen dir </faq/#Q-07b> und </faq/#Q-07c>.

    gruß,
    wahsaga

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