Formular - Radiobutton - JavaScript auswerten

  • Hallo zusammen,

    ich benötige Eure Hilfe, da ich mit meinem html am Ende bin.
    Ich habe schon ein bsischen "gegooglet" und bei selfhtml nachgeschaut, kann aber leider keine Lösung finden, obwohl das Problem ganz einfach ist.

    Also ich will eine Gruppe von Radiobuttons via JavaScript nachprüfen lassen.
    Eigentlich ganz einfach, aber irgendwie....

    Mein Code:

    Wenn ich auf den Button klicke kommt statt z.B. test1 immer die Meldung undefined. Was ist bloß falsch? Ich finde des Fehler nicht.

    Danke für Eure Hilfe!

    Mitspieler
    ps: ich habe es auch schon mal mit document.getElementByName(gleich) probiert. geht leider irgendwie auch nicht.

  • Hallo GreenRover,

    der von Dir vorgeschlagene Code funktioniert.
    Leider bekomme ich aber so nicht raus, welcher Radiobutton aktiviert wurde. (Außer ich gebe allen unterschiedliche Namen, was ich habe verhindern wollte)

    Ich würde gerne abfragen können, welcher Radiobutton angeklickt wurde.
    Also wenn ich beim oben genannten Code test1 anklicke soll test1 ausgeben werden und wenn man test2 anwählt test.

    Trotzdem vielen Dank für Deine Mühe
    Mitspieler

  • Moin!

    Um es gleich vorweg zu nehmen: so wie du es dir vorstellst geht es leider nicht.
    Aber Schritt für Schritt zu einer Lösung:

    1.

    Zitat von Mitspieler

    ps: ich habe es auch schon mal mit document.getElementByName(gleich) probiert. geht leider irgendwie auch nicht.

    Das kann auch nicht gehen, da die Syntax falsch ist, richtig wäre:

      document.getElementsByName("gleich")[0] .value

    Damit kannst du allerdings lediglich das vorgegebene Value eines Radiobutton, abfragen - die "[0]" steht für den ersten Button.

    An dieser Stelle schnell einmal etwas grundsätzliches zu Radiobutton:
    Entgegen aller anderen Formularfelder und Button haben Radiobutton ständig den fest vorgegebenen Wert. Der steht im Quelltext und ist auch nicht veränderbar, d.h. wie auch immer du ein value des 1. Radiobutton abfragst, es ist der Wert der im Quelltetxt steht. Gleiches gilt auch für die folgenden Radiobutton mit dem gleichen Bezeichner, auch sie haben einen festen vorgegebenen Wert und eine Value-Abfrage übergibt immer nur ein Stückchen Quelltext aus deim HTML.
    Erst wenn das Formular versendet wird, kommt der Browser in einen Konflikt: er soll dem Bezeichner/der Variable (bei dir ist es "gleich") einen Wert mitgeben, also nimmt er den Wert mit, der bei dem ausgewählten Radiobutton im value steht. Einer Auswertung mittels PHP steht somit also nichts im Wege - nur mit Javascript geht es eben nicht, keine chance.

    Das einzige was Radiobutton mit dem gleichen Bezeichner unterscheidet, ist daß max. einer von ihnen aktiviert sein kann. Hast du nun immer nur paarweise Radiobutton, so könntest du mit Javasscript einfach abfragen, ob Button 1 ausgewählt wurde:

    Code
    alert(document.getElementsByName("gleich")[0].checked)


    Das Alert gibt in diesem Fall ein "true" oder ein "false" aus, je nachdem, ob der Button angeklickt ist oder nicht. Jetzt könnte man bei nur zwei Button daraus schließen, daß wenn der erste aktiveiert ist, der zweite es dann nicht sein kann - und natürlich umgekehrt. Das geht aber nur, wenn man bereits beim laden des Quelltextes einem Radiobutton eine "checked" beiordnet, andernfalls sind sagt das "false" bei der Abfrage ja nicht aus, ob der andere Button dafür aktiviert wurde.

    Bei mehr als 2 Button wird es dann problematisch und du kommst um mehrere Abfragen (ggf. eine Schleife) nicht herum.
    Wenn du deine Radiobutton unbedingt mit Javascript überwachen willst, dann kannst du dir eine Hilfsvariable setzen und diese bei jedem anklicken mit dem value des Button füttern, z.B. so:

    Statt <input type="button" onClick="check()"> kannst du dann natürlichauch gleich <input type="button" onClick="alert(gleich_v)"> nehmen.

    Bei mehr als 2 Radiobutton ist das ganze relativ aufwendig und wahrscheinlich ist es einfacher, die Überprüfung über das PHP-Script zu machen und ggf. zum Eingabeformular zurück zu werfen, falls etwas fehlt.
    Allerdings braucht man das Script bei mehreren Bezeichnern nicht immer wieder neu schreiben, man kann ja den Bezeichner oder ein Steuerzeichen (z.B. eine Zahl) mit übergeben, womit dann den Wert der richtigen Hilfs-Variablen zugewiesen wird.

    Das aber dann im nächsten Kapiitel ;)

    Ich hoffe es hilft dir etwas,

    G.a.d.M.

    ronald

  • WOW!
    Vielen Dank für die schnelle und vor allen sehr ausführliche Hilfe!

    Das hat mir wirklich sehr geholfen.

    Viele Grüße und Danke für Eure Zeit
    Mitspieler